Install Docker on Ubuntu

目前支持的 Ubuntu 版本:

  • Ubuntu Xenial 16.04 (LTS)
  • Ubuntu Wily 15.10
  • Ubuntu Trusty 14.04 (LTS)
  • Ubuntu Precise 12.04 (LTS)

Prerequisites

内核版本不能低于 3.10

$ uname -r
3.11.0-15-generic

如果之前使用 APT 安装过 Docker,需确保更新 APT 源至新的 Docker repository。

Update your apt sources

1、使用 sudo 权限或 root 用户登录

2、开启一个终端窗口

3、更新包信息,确保 APT 以 https 方式工作,安装 CA 证书

 $ sudo apt-get update
 $ sudo apt-get install apt-transport-https ca-certificates

4、添加新的 GPG key

$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

5、编辑 /etc/apt/sources.list.d/docker.list 文件,如果不存在就创建一个

6、删除所有已存在的条目

7、添加一条

# On Ubuntu Trusty 14.04 (LTS)
deb https://apt.dockerproject.org/repo ubuntu-trusty main

# On Ubuntu Xenial 16.04 (LTS)deb https://apt.dockerproject.org/repo ubuntu-xenial main

8、保存并关闭 /etc/apt/sources.list.d/docker.list 文件

9、更新 APT 包索引

$ sudo apt-get update

10、清空旧的 repo(如果存在的话)

$ sudo apt-get purge lxc-docker

11、验证 repository 生效

$ apt-cache policy docker-engine

Prerequisites by Ubuntu Version

对于 Ubuntu 14.04、15.10、16.04,建议安装 linux-image-extra 内核包,linux-image-extra 包使你可以使用 aufs 存储驱动。

1、开启一个终端窗口

2、更新包管理器

$ sudo apt-get update

3、安装建议的包

$ sudo apt-get install linux-image-extra-$(uname -r)

4、继续安装 Docker

如果是 Ubuntu 14.04 或 12.04,需要安装 apparmor

apt-get install apparmor

Install

确保先决条件已经满足,然后开始安装 Docker

1、使用 sudo 权限用户登录

2、更新 APT 包索引

$ sudo apt-get update

3、安装 Docker

$ sudo apt-get install docker-engine

4、启动 Docker 守护进程

$ sudo service docker start

5、验证 Docker 是否正确安装

$ sudo docker run hello-world

这个命令会下载一个测试镜像并在容器内运行,它会输出一组信息到屏幕,然后退出。

Optional configurations

Create a Docker group

Docker 守护进程与 Unix socket 绑定,而不是 TCP 端口。默认情况下 Unix socket 属于 root 用户,其他用户可以通过 sudo 命令进行访问。因此,Docker 守护进程一直是以 root 用户的身份运行。

为了避免每次使用 docker 命令需要 sudo,可以创建一个名字是 docker 的 Unix 组,把用户加到这个组里。这样,当 docker 守护进程启动时,它会给这个组赋予 Unix socket 的读写权限。

警告:docker 组相当于 root 用户,这对于你的系统有哪些安全影响,详细细节请参照 Docker Daemon Attack Surface 文档。

创建 docker 组并添加用户:

1、使用 sudo 权限用户登录

2、创建 docker 组

$ sudo groupadd docker

3、将用户添加到 docker 组

$ sudo usermod -aG docker $USER

4、注销重新登陆

5、验证不需要 sudo 就可以执行 docker 命令

$ docker run hello-world

如果失败提示如下类似信息:

Cannot connect to the Docker daemon. Is ‘docker daemon‘ running on this host?

检查 DOCKER_HOST 环境变量是否已设置。

Adjust memory and swap accounting

运行 docker 时,可能会收到如下警告:

WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.

为避免出现此类信息,需要在你的系统上启用 memory and swap accounting。

启用后,会增加内存开销和性能下降,即时 docker 没在运行的时候。内存开销会增加约 1%,性能下降约 10%。

1、使用 sudo 权限用户登录

2、编辑 /etc/default/grub 文件

3、设置 GRUB_CMDLINE_LINUX 的值如下

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

4、保存并关闭文件

5、更新 GRUB

$ sudo update-grub

6、重启系统

Enable UFW forwarding

如果有在使用 UFW 防火墙,还需要做些额外的配置。Docker 使用 bridge 来管理容器网络,默认情况下 UFW 会丢弃所有的转发流量,因此需要配置 UFW 的转发策略。

同样的,UFW 的默认规则会拒绝所有入站流量。远程连接 Docker,启用 TLS 时的默认端口是 2376,未启用时是 2375。Docker 默认不启用 TLS,未启用 TLS 时,通讯是不加密的。

配时 UFW 允许入站的连接:

1、使用 sudo 权限用户登录

2、确认 UFW 是否安装并启用

$ sudo ufw status

3、编辑 /etc/default/ufw 文件

$ sudo nano /etc/default/ufw

4、设置 DEFAULT_FORWARD_POLICY 为:

DEFAULT_FORWARD_POLICY="ACCEPT"

5、保存并关闭文件

6、重新加载 UFW

$ sudo ufw reload

7、允许 Docker 端口的入站访问

$ sudo ufw allow 2375/tcp

Configure a DNS server for use by Docker

Ubuntu 系统一般都使用 127.0.0.1 作为默认的 nameserver,在 /etc/resolv.conf 中配置。

这样启动容器时会有警告:

WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can‘t use it. Using default external servers : [8.8.8.8 8.8.4.4]

原因是 Docker 容器无法使用本地的 DNS 服务器,默认是使用外部的 DNS。

为避警告,可以指定一个 DNS 服务器或者在 NetworkManager 中禁用 dnsmasq,禁用 dnsmasq 会导致某些网络下 DNS 解析变慢。

Ubuntu 15.10 及以上版本是使用 systemd 作为启动和服务管理器,参照 control and configure Docker with systemd 文档

Ubuntu 14.10 及以下版本配置方法:

1、使用 sudo 权限用户登录

2、编辑 /etc/default/docker 文件

$ sudo nano /etc/default/docker

3、添加一条设置

DOCKER_OPTS="--dns 8.8.8.8"

也可以设置多个 dns 服务器

--dns 8.8.8.8 --dns 192.168.1.1

4、保存并关闭文件

5、重启 Docker 守护进程

$ sudo service docker restart

或者通过禁用 dnsmasq 的方法:

1、编辑 /etc/NetworkManager/NetworkManager.conf 文件

$ sudo nano /etc/NetworkManager/NetworkManager.conf

2、注释掉 dns=dnsmasq 行:

dns=dnsmasq

3、保存并关闭文件

4、重启 NetworkManager 和 Docker

$ sudo restart network-manager
$ sudo restart docker

Configure Docker to start on boot

Ubuntu 15.04 版本以上使用 systemd 作为启动和服务管理器,14.10 版本以下使用 upstart。

15.04 以上版本,配置 docker 开机启动

$ sudo systemctl enable docker

14.10 以下版本,通过上述的安装过程会自动配置开机启动

Upgrade Docker

使用 apt-get 安装 Docker 最新版本:

$ sudo apt-get upgrade docker-engine

Uninstallation

卸载 Docker 包:

$ sudo apt-get purge docker-engine

卸载 Docker 及其依赖包:

$ sudo apt-get autoremove --purge docker-engine

上诉命令不会移除镜像、容器、卷和用户创建的配置文件,使用如下命令可删除所有的镜像、容器和卷:

$ rm -rf /var/lib/docker

必须手动删除用户创建的配置文件。

 

时间: 2024-10-31 23:51:59

Install Docker on Ubuntu的相关文章

How To Install Docker On Ubuntu 18.04

Docker is an increasingly popular software package that creates a container for application development. Developing in Docker speeds up applications, as it shares the kernel and other resources, instead of requiring dedicated resources. There are two

How to install Docker on Ubuntu

Docker currently only runs on 64-bits platforms and requires that the kernal version be no less than 3.10.in this tutorial , i use ubuntu 16.04 and the kernal version is 4.13.0-43-generic you can use this command to find your linux-version and linux-

Install Docker in Ubuntu 16.04 LTS

add key sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D add sources sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main' update apt update install a

Ubuntu install Docker

首先需要说明的是,根据Docker的官方文档,Docker的安装必须在64位的机子上.这里只说明Ubuntu 14.04与16.04,我成功安装成功过Ubuntu 14.04,16.04还没有测试过,若为Ubuntu 12.04参考官方文档. 官方文档地址:https://docs.docker.com/engine/installation/linux/ubuntulinux/ 建议先按照官方文档步骤安装,若读不懂可以参考我写的,有问题请给我留言 -----------------------

Docker的ubuntu镜像安装的容器无ifconfig和ping命令的解决

Docker的Ubuntu镜像安装的容器无ifconfig命令和ping命令 解决: apt-get update apt install net-tools       # ifconfig apt install iputils-ping     # ping

Install Docker on Mac OS X(转)

Install Docker on Mac OS X You can install Docker using Boot2Docker to run docker commands at your command-line. Choose this installation if you are familiar with the command-line or plan to contribute to the Docker project on GitHub. Alternatively,

docker 搭建ubuntu+mysql环境教程

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的 应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, 相互之间不会有任何接口. 实验目的:在centos6.5中运用docker,初步了解docker创建过程, 创建ubuntu及mysql镜像 并将其发布出去并测试,体验docker工作原理 一:查看当前linux内核版本,docker需要内核3.X uname -a 查看内核版本,如果小于3.X需要升级内核 内核

Docker在Ubuntu的部署实践

Docker在Ubuntu的部署实践 作者:chszs,版权所有,未经同意,不得转载.博主主页:http://blog.csdn.net/chszs 本文讲述Docker在Ubuntu系统上的部署过程.其中,Ubuntu为12.04.5 LTS, Precise Pangolin版. 1.安装Docker # apt-get update # apt-get install docker.io Reading package lists... Done Building dependency t

centos Install Docker

安装必备软件 yum -y install iptables  iptables-services net-tools vim wget 安装Dockeryum -y install docker 下载centos镜像docker pull centos 查看centos 镜像docker images centos 运行一个Docker容器docker run -i -t centos /bin/bash 搜索Ubuntu镜像docker search Ubuntu 显示正在运行的容器(需要先