下列64位版本的Ubuntu Linux支持Docker :
Ubuntu Xenial 16.04(LTS)
Ubuntu Wily 15.10
Ubuntu Trusty 14.04(LTS)
Ubuntu Precise 12.04(LTS)
一些注意事项:
以下说明仅涉及使用Docker软件包进行安装,这可确保获得Docker的最新正式版本。如果只需要使用Ubuntu-managed软件包安装,请查阅Ubuntu文档(出于明显的原因,不建议这样做)。
Docker的APT存储库中存在Ubuntu Utopic 14.10和15.04,但由于已知的安全问题,不再受正式支持。
先决条件
Docker仅适用于64位Linux安装。
Docker要求Linux内核版本3.10或更高(除外Ubuntu Precise 12.04,要求版本3.13或更高)。低于3.10的内核缺少运行Docker容器所需的某些功能,并且包含已知的错误,这些错误会导致数据丢失并在某些情况下经常出现恐慌。使用命令检查当前内核版本uname -r。如果您需要Ubuntu Precise (12.04 LTS)通过向下滚动来更新内核,请查看此文章。请参阅此WikiHow帖子以获取其他Ubuntu安装的最新版本。
更新APT来源
这需要完成,以便从Docker存储库访问软件包。
使用sudo或root特权作为用户登录到您的计算机。
打开一个终端窗口。
更新程序包信息,确保APT与https方法一起使用,并且已安装CA证书。
$ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
添加Docker的官方GPG密钥:
$curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
验证密钥指纹是否为9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88。
$sudo apt-key fingerprint 0EBFCD88
pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker Release (CE deb) <docker@docker.com> sub 4096R/F273FCD8 2017-02-22
在下表中找到与您的Ubuntu版本相对应的条目。这确定了APT将在哪里搜索Docker软件包。如果可能,请运行Ubuntu的长期支持(LTS)版本。
Ubuntu版本 | 资料库 |
---|---|
精确12.04(LTS) | deb https://apt.dockerproject.org/repo ubuntu-precise main |
可信赖的14.04(LTS) | deb https://apt.dockerproject.org/repo ubuntu-trusty main |
威力15.10 | deb https://apt.dockerproject.org/repo ubuntu-wily main |
Xenial 16.04(LTS) | deb https://apt.dockerproject.org/repo ubuntu-xenial main |
注意: Docker并未为所有架构提供软件包。二进制工件每夜生成一次,您可以从下载它们https://master.dockerproject.org。要将docker安装在多体系结构系统上,请[arch=...]在条目中添加一个子句。有关详细信息,请参考Debian Multiarch Wiki。
运行以下命令,将您的操作系统的条目替换为placeholder <REPO>。
$echo“” | sudo tee /etc/apt/sources.list.d/docker.list
APT通过执行更新包索引sudo apt-get update。
验证是否APT从正确的存储库中提取。
运行以下命令时,将为每个版本的Docker返回一个条目,可供您安装。每个条目都应具有URL https://apt.dockerproject.org/repo/。当前安装的版本带有标记。请***参见以下示例的输出。
$ apt-cache policy docker-engine docker-engine: Installed: 1.12.2-0~trusty Candidate: 1.12.2-0~trusty Version table: *** 1.12.2-0~trusty 0 500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages 100 /var/lib/dpkg/status 1.12.1-0~trusty 0 500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages 1.12.0-0~trusty 0 500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
从现在开始,运行时apt-get upgrade,APT将从新的存储库中提取。
Ubuntu版本的先决条件
对于Ubuntu Trusty(14.04),Wily(15.10)和Xenial(16.04),请安装linux-image-extra-*内核软件包,使您可以使用aufs存储驱动程序。
要安装linux-image-extra-*软件包:
在Ubuntu主机上打开一个终端。
使用命令更新软件包管理器sudo apt-get update。
安装推荐的软件包。
$sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
继续进行Docker安装
对于Ubuntu Precise(12.04 LTS),Docker需要3.13内核版本。如果您的内核版本早于3.13,则必须对其进行升级。请参阅此表以查看您的环境需要哪些软件包:
包 | 描述 |
---|---|
linux-image-generic-lts-trusty | 通用Linux内核映像。该内核已AUFS内置。这是运行Docker所必需的。 |
linux-headers-generic-lts-trusty | 允许诸如ZFS和VirtualBox guest additions依赖于它们的软件包。如果您没有为现有内核安装标头,则可以跳过这些标头trusty。如果不确定,则应包括此包装以确保安全。 |
xserver-xorg-lts-trusty | 在没有Unity / Xorg的非图形环境中是可选的。在具有图形环境的机器上运行Docker时需要。 |
ligbl1-mesa-glx-lts-trusty | 要了解有关使用这些软件包的原因的更多信息,请阅读反向移植内核的安装说明,尤其是LTS Enablement Stack。请参阅每个版本下的注释5。 |
要升级内核并安装其他软件包,请执行以下操作:
在Ubuntu主机上打开一个终端。
使用命令更新软件包管理器sudo apt-get update。
安装必需和可选软件包。
$sudo apt-get install linux-image-generic-lts-trusty
对您需要安装的其他软件包重复此步骤。
使用命令重新启动主机以使用更新的内核sudo reboot。
重新启动后,继续并安装Docker。
安装最新版本
确保满足先决条件,然后再执行以下步骤。
注意:对于生产系统,建议您安装特定版本,以免意外更新Docker。您应该仔细计划生产系统的升级。
以具有sudo特权的用户身份登录Ubuntu安装。(可能正在运行sudo -su)。
通过运行更新APT软件包索引sudo apt-get update。
使用命令安装Docker Community Edition sudo apt-get install docker-ce。
docker使用命令启动守护程序sudo service docker start。
docker通过运行hello-world映像来验证是否已正确安装。
$sudo docker run hello-world
此命令下载测试图像并在容器中运行它。容器运行时,它会打印参考消息并退出。
以非root用户身份管理Docker
如果sudo在使用docker命令时不想使用,请创建一个Unix组docker,并将其添加用户。当docker守护程序启动时,它使得读/由码头工人组可写的Unix套接字的所有权。
要创建docker组并添加您的用户,请执行以下操作:
以具有sudo特权的用户身份登录Ubuntu 。
docker使用命令创建组sudo groupadd docker。
将您的用户添加到该docker组。
$sudo usermod -aG docker $USER
注销并重新登录,以便重新评估您的组成员身份。
验证是否可以未经许可就docker命令sudo。
$docker run hello-world
如果失败,您将看到一个错误:
Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
检查是否DOCKER_HOST为您的外壳程序设置了环境变量。
$ env | grep DOCKER_HOST
如果已设置,则上述命令将返回结果。如果是这样,请取消设置。
$ unset DOCKER_HOST
您可能需要在诸如~/.bashrc或的文件中编辑环境,~/.profile以防止DOCKER_HOST错误设置变量。