Ubuntu上安装Dcoker Engine - Community
要开始使用Docker Engine - Community on Ubuntu,请确保您满足先决条件,然后安装Docker。
先决条件
Docker EE 客户
要安装Docker Enterprise Edition(Docker EE),请转到获取Ubuntu的Docker EE。
要了解有关Docker EE的更多信息,请参阅Docker Enterprise Edition。
操作系统要求
要安装Docker Engine - Community,您需要以下Ubuntu版本之一的64位版本:
- Disco 19.04
- Cosmic 18.10
- Bionic 18.04 (LTS)
- Xenial 16.04 (LTS)
Docker Engine - Community支持x86_64
(或amd64
),armhf
,arm64
,s390x
(IBM Z)和ppc64le
(IBM Power)架构。
卸载旧版本
较旧的Docker版本称为docker
,docker.io
或docker-engine
。 如果已安装,请卸载它们:
$ sudo apt-get remove docker docker-engine docker.io containerd runc
如果apt-get
报告没有安装这些软件包,那就可以了。
以上卸载命令,不会删除/var/lib/docker/
下的内容(包括镜像,容器,卷和网络)。
Docker Engine - Community软件包现在称为docker-ce
。
支持的存储驱动程序
Docker Engine - Community on Ubuntu支持overlay2
, aufs
和 btrfs
存储驱动程序
注意,在Docker Engine - Enterprise中,仅SLES支持
btrfs
。 有关更多详细信息,请参见btrfs上的文档。
在Linux内核版本4或更高版本上安装Docker时,与aufs
相比,overlay2
是首选。 Docker Engine - Community默认使用overlay2
存储驱动程序。 如果您需要使用aufs
,则需要手动配置它。 见aufs。
安装Docker Engine - Community
您可以根据需要以不同的方式安装Docker Engine - Community:
大多数用户会设置Docker仓库并从中进行安装,以简化安装和升级任务。 这是推荐的方法。
一些用户下载并手动安装DEB软件包,并完全手动管理升级。 这在诸如无法访问互联网的空白系统上安装Docker的情况下非常有用。
在测试和开发环境中,一些用户选择使用自动便捷脚本来安装Docker。
使用仓库安装
在新主机上首次安装Docker Engine - Community之前,需要设置Docker仓库。 设置之后,您就可以从仓库安装和更新Docker了。
设置仓库
- 更新
apt
软件包索引。
$ sudo apt-get update
- 安装软件包,允许
apt
使用HTTPS仓库:
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
- 添加Docker官方GPG key
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
通过搜索fingerprint的后8个字符,验证您现在是否拥有带有fingerprint9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
的密钥。
$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
- 使用以下命令来设置stable版本的仓库。 要添加nightly或test仓库,请在以下命令中的单词
stable
后添加nightly
或test
(或两者)。 了解nightly和test通道。。
注意:下面的lsb_release -cs子命令返回您的Ubuntu发行版的名称,例如
xenial
。 有时,在Linux Mint之类的发行版中,您可能需要将$(lsb_release -cs)
更改为您的父Ubuntu发行版。 例如,如果您使用的是Linux Mint Tessa
,则可以使用bionic
。 Docker对未经测试和不受支持的Ubuntu发行版不提供任何保证。
<div class="tab-pane fade" id="content2" role="tabpanel" aria-labelledby="profile-tab">
$ sudo add-apt-repository "deb [arch=armhf] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
</div>
<div class="tab-pane fade" id="content3" role="tabpanel" aria-labelledby="profile-tab">
$ sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
</div>
<div class="tab-pane fade" id="content4" role="tabpanel" aria-labelledby="profile-tab">
$ sudo add-apt-repository "deb [arch=ppc64el] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
</div>
<div class="tab-pane fade" id="content5" role="tabpanel" aria-labelledby="profile-tab">
$ sudo add-apt-repository "deb [arch=s390x] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
</div>
安装Docker Engine - Community
- 更新apt软件包索引。
$ sudo apt-get update
- 安装最新版本的Docker Engine - Community和containerd,如果您想安装特定版本请,转到下一步安装:
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
> **有多个Docker仓库吗?**
> 如果启用了多个Docker仓库,则未在`apt-get install`或`apt-get update`命令中指定版本的情况下,将始终安装最高版本,这可能不适合您的稳定性需求。
- 要安装特定版本的Docker Engine - Community,请在仓库中列出可用版本,然后选择并安装:
1. 列出您仓库中可用的版本。
```
$ apt-cache madison docker-ce
docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
...
```
2. 使用第二列中的版本字符串安装特定版本,例如`5:18.09.1~3-0~ubuntu-xenial`。
```
$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
```
- 通过运行
hello-world
镜像来验证Docker Engine - Community是否正确安装。
$ sudo docker run hello-world
此命令下载测试镜像并在容器中运行。 容器运行时,它会打印消息并退出。
Docker已安装但尚未启动。 docker
组已创建,但没有用户添加到该组。
继续阅读Linux安装后,讲述允许非特权用户运行Docker命令以及其他可选配置步骤。
升级Docker Engine - Community
要升级Docker Engine - Community,请按照安装指令进行操作,选择要安装的新版本。
从软件包安装
如果您无法使用Docker仓库安装Docker,则可以下载适用于您的版本的.deb
文件并手动安装。 每次升级Docker Engine - Community时,都需要下载一个新文件。
- 转到https://download.docker.com/linux/ubuntu/dists/,选择您的Ubuntu版本,浏览到
pool/stable/
,选择架构amd64
,armhf
,arm64
,ppc64el
, 或s390x
,并下载要安装的Docker版本的.deb
文件。
注意:要安装nightly软件包,请将上述URL中的stable改为nightly。 了解nightly和test通道。
- 安装Docker Engine - Community,将下面的路径更改为您下载Docker软件包的路径。
$ sudo dpkg -i /path/to/package.deb
Docker后台程序将自动启动。
- 通过运行
hello-world
镜像来验证Docker Engine - Community是否正确安装。
$ sudo docker run hello-world
此命令下载测试镜像并在容器中运行。 容器运行时,它会打印消息并退出。
Docker Engine - Community已安装并正在运行。 您需要使用sudo
运行Docker命令。 继续执行Linux的安装后步骤,以允许非特权用户运行Docker命令以及其他可选配置步骤。
更新
要升级Docker Engine - Community,请下载更新的软件包文件并重复安装过程,指向新文件。
使用便捷脚本进行安装
Docker在get.docker.com和test.docker.com上提供了便捷脚本,用于将Docker Engine - Community的测试版本快速且静默的安装到开发环境中。 脚本的源代码位于docker-install仓库中。 不建议在生产环境中使用这些脚本,在使用它们之前,您应该了解潜在的风险:
- 这些脚本需要
root
或sudo
特权才能运行。 因此,在运行脚本之前,应仔细检查和审核脚本。 - 这些脚本尝试检测Linux发行渠道和版本,并为您配置软件包管理系统。 此外,脚本不允许您自定义任何安装参数。这可能会导致配置不受支持。
- 这些脚本将安装软件包管理器的所有依赖项和建议项,而无需进行确认。 这可能会安装大量软件包,具体取决于主机的当前配置。
- 该脚本未提供用于指定要安装哪个版本的Docker的选项,而是安装了在“edge”通道中发布的最新版本。
- 如果已使用其他机制将Docker安装在主机上,请不要使用便捷脚本。
本示例使用get.docker.com上的脚本在Linux上安装最新版本的Docker Engine - Community。 要安装最新的测试版本,请改用test.docker.com。 在下面的每个命令中,将每次出现的get
替换为test
。
警告 在本地运行之前,请务必检查从Internet下载的脚本。
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
<output truncated>
如果要以非root用户使用Docker,则现在应考虑使用类似以下方式将用户添加到“docker”组:
sudo usermod -aG docker your-user
请记住注销并重新登录才能生效!
警告 将用户添加到“docker”组后,将授权他们可以运行容器,些权限可用于获取Docker主机上的root权限。 有关更多信息,请参考Docker后台进程攻击表面。
Docker Engine - Community已安装完成。它会在基于DEB的发行版上自动启动。 在基于RPM的发行版上,您需要使用适当的systemctl
或service
命令手动启动它。默认情况下,非root用户不能运行Docker命令。
使用便捷脚本后升级DOCKER
如果使用便捷脚本安装了Docker,则应直接使用包管理器升级Docker。 重新运行便捷脚本没有任何好处,并且如果尝试重新添加已经添加到主机的仓库,则可能导致问题。
卸载Docker引擎社区
- 卸载Docker软件包:
$ sudo apt-get purge docker-ce
- 主机上的镜像,容器,卷或自定义配置文件不会自动删除。 要删除所有镜像,容器和卷,使用以下命令:
$ sudo rm -rf /var/lib/docker
您必须手动删除所有已编辑的配置文件。
下一步
继续执行Linux的安装后步骤
继续阅读用户指南。