要在Ubuntu上开始使用Docker Engine,请确保您 满足先决条件,然后 安装Docker。
前提条件
操作系统要求
要安装Docker Engine,您需要以下Ubuntu版本之一的64位版本:
- Ubuntu Focal 20.04(LTS)
- Ubuntu Bionic 18.04(LTS)
- Ubuntu Xenial 16.04(LTS)
Docker Engine在x86_64
(或amd64
)armhf
,和arm64
体系结构上受支持。
卸载旧版本
Docker的旧版本被称为docker
,docker.io
或docker-engine
。如果已安装,请卸载它们:
$ sudo apt-get remove docker docker-engine docker.io containerd runc
如果apt-get
报告未安装这些软件包,则可以。
(/var/lib/docker/
包括镜像,容器,卷和网络)的内容将被保留。如果您不需要保存现有数据,并且希望以全新安装开始,请参阅 此页面底部的“卸载Docker Engine”部分。
支持的存储驱动程序
Docker引擎在Ubuntu的支持overlay2
,aufs
和btrfs
存储驱动程序。
Docker Engineoverlay2
默认使用存储驱动程序。如果需要使用 aufs
,则需要手动配置。请参阅使用AUFS存储驱动程序
安装方法
您可以根据需要以不同的方式安装Docker Engine:
- 大多数用户会 设置Docker的存储库并从中进行安装,以简化安装和升级任务。这是推荐的方法。
- 一些用户下载并手动安装DEB软件包, 并完全手动管理升级。这在诸如在无法访问互联网的空白系统上安装Docker的情况下非常有用。
- 在测试和开发环境中,一些用户选择使用自动 便利脚本来安装Docker。
使用存储库安装
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
设置存储库
第一步:
更新apt
软件包索引并安装软件包以允许apt
通过HTTPS使用存储库:
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
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
通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥 。
$ 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) <[email protected]>
sub rsa4096 2017-02-22 [S]
第三步:
使用以下命令来设置稳定的存储库。要添加 每晚或测试存储库,请在以下命令中的单词后面添加nightly
或test
(或两者)stable
。了解每晚和测试频道。
注意:下面的
lsb_release -cs
子命令返回Ubuntu发行版的名称,例如xenial
。有时,在Linux Mint等发行版中,您可能需要更改$(lsb_release -cs)
为父Ubuntu发行版。例如,如果您使用Linux Mint Tessa
,则可以使用bionic
。Docker对未经测试和不受支持的Ubuntu发行版不提供任何保证。
X86_64:
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
armhf:
$ sudo add-apt-repository \
"deb [arch=armhf] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
arm64:
$ sudo add-apt-repository \
"deb [arch=arm64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装DOCKER引擎
第一步:
更新apt
程序包索引,并安装最新版本的Docker Engine和容器化的容器,或转到下一步以安装特定版本:
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
有多个Docker存储库吗?
如果启用了多个Docker存储库,则在未在
apt-get install
orapt-get update
命令中指定版本的情况下进行安装或更新将始终安装可能的最高版本,这可能不适合您的稳定性需求。
第二步:
要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装:
A: 列出您的仓库中可用的版本:
$ 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
...
B: 使用第二列中的版本字符串安装特定版本,例如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 。
$ sudo docker run hello-world
此命令下载测试镜像并在容器中运行它。容器运行时,它会打印参考消息并退出。
Docker Engine已安装并正在运行。该docker
组已创建,但未添加任何用户。您需要使用sudo
来运行Docker命令。继续进行Linux后安装,以允许非特权用户运行Docker命令以及其他可选配置步骤。
升级DOCKER引擎
要升级Docker Engine,请先运行sudo apt-get update
,然后按照 安装说明进行操作,选择要安装的新版本。
从软件包安装
如果无法使用Docker的存储库安装Docker Engine,则可以下载该.deb
发行版的 文件并手动安装。每次升级Docker时,都需要下载一个新文件。
- 去
https://download.docker.com/linux/ubuntu/dists/
选择你的Ubuntu版本,然后浏览pool/stable/
,选择amd64
,armhf
或arm64
,并下载.deb
文件要安装多克尔引擎版本。注意:要安装夜间或测试(预发布)软件包,stable
请将上述URL中的单词更改为nightly
或test
。 - 安装Docker Engine,将下面的路径更改为您下载Docker软件包的路径。命令行:
$ sudo dpkg -i /path/to/package.deb
Docker守护程序会自动启动。 - 通过运行
hello-world
映像来验证是否正确安装了Docker Engine 。命令:$ sudo docker run hello-world
此命令下载测试镜像并在容器中运行它。容器运行时,它会打印参考消息并退出。
Docker Engine已安装并正在运行。该docker
组已创建,但未添加任何用户。您需要使用sudo
来运行Docker命令。继续执行Linux的安装后步骤,以允许非特权用户运行Docker命令以及其他可选配置步骤。
升级DOCKER引擎
要升级Docker Engine,请下载更新的软件包文件,然后重复 安装过程,指向新文件。
使用便捷脚本安装
Docker在get.docker.com 和test.docker.com上提供了方便脚本,用于将Docker Engine-Community的边缘版本和测试版本快速且非交互地安装到开发环境中。脚本的源代码在 docker-install
存储库中。 不建议在生产环境中使用这些脚本,并且在使用它们之前,您应该了解潜在的风险:
- 脚本需要运行
root
或具有sudo
特权。因此,在运行脚本之前,应仔细检查和审核脚本。 - 这些脚本尝试检测Linux发行版和版本,并为您配置软件包管理系统。此外,脚本不允许您自定义任何安装参数。从Docker的角度或您自己组织的准则和标准的角度来看,这可能导致不支持的配置。
- 这些脚本将安装软件包管理器的所有依赖项和建议,而无需进行确认。这可能会安装大量软件包,具体取决于主机的当前配置。
- 该脚本未提供用于指定要安装哪个版本的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 Daemon Attack Surface。
Docker Engine-社区已安装。它会自动在DEB
基于分发的版本上启动。在 RPM
基于发行版的系统上,您需要使用相应的systemctl
或service
命令手动启动它 。如消息所示,默认情况下,非root用户不能运行Docker命令。
注意事项:
要安装没有root特权的Docker,请参阅 以非root用户身份运行Docker守护程序(无根模式)。
目前,无根模式是一项实验功能。
使用便捷脚本后升级DOCKER
如果使用便捷脚本安装了Docker,则应直接使用包管理器升级Docker。重新运行便利程序脚本没有任何好处,并且如果尝试重新添加已经添加到主机的存储库,则可能导致问题。
卸载Docker
- 卸载Docker Engine,CLI和Containerd软件包:
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
- 主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有镜像,容器和卷:
$ sudo rm -rf /var/lib/docker
您必须手动删除所有已编辑的配置文件。