CentOS上安装Docker Engine - Community

要开始使用Docker Engine - Community for CentOS,请确保您满足先决条件,然后安装Docker。

先决条件

Docker EE 客户

要安装Docker企业版(Docker EE),请转到获取CentOS的Docker EE

要了解有关Docker EE的更多信息,请参阅Docker企业版

操作系统要求

要安装Docker Engine - Community,您需要一个CentOS 7维护版本。存档版本不支持或未测试过。

必须启用centos-extras仓库。 该仓库默认情况下处于启用状态,但是如果已禁用它,则需要重新启用它。

建议使用overlay2存储驱动程序。

卸载旧版本

较旧的Docker版本称为dockerdocker-engine。 如果已安装这些程序,请卸载它们以及相关的依赖项。

$ sudo yum remove docker                   docker-client                   docker-client-latest                   docker-common                   docker-latest                   docker-latest-logrotate                   docker-logrotate                   docker-engine

如果yum报告没有安装这些软件包,那就可以了。

/var/lib/docker/的内容(包括镜像,容器,卷和网络)被保留。 Docker Engine - Community软件包现在称为docker-ce

安装Docker Engine - Community

您可以根据需要以不同的方式安装Docker Engine - Community:

  • 大多数用户会设置Docker的仓库并从中进行安装,以简化安装和升级任务。 这是推荐的方法。

  • 一些用户下载并手动安装RPM软件包,并完全手动管理升级。 这在诸如在无法访问互联网的空白系统上安装Docker的情况下非常有用。

  • 在测试和开发环境中,一些用户选择使用自动便利脚本来安装Docker。

使用仓库安装

在新主机上首次安装Docker Engine - Community之前,需要设置Docker仓库。 之后,您可以从仓库安装和更新Docker。

设置仓库

  1. 安装所需的软件包。 yum-utils(提供了yum-config-manager实用程序),和device-mapper-persistent-data,和lvm2(devicemapper存储驱动程序需要)。
$ sudo yum install -y yum-utils   device-mapper-persistent-data   lvm2
  1. 使用以下命令来设置稳定版本的仓库。
$ sudo yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo

可选:启用nightly或test仓库。

这些仓库包含在上面的docker.repo文件中,但默认情况下处于禁用状态。 您可以启用它们。 以下命令启用nightly仓库。

$ sudo yum-config-manager --enable docker-ce-nightly

要启用test通道,请运行以下命令:

$ sudo yum-config-manager --enable docker-ce-test

您可以通过运行带有--disable标记的yum-config-manager命令来禁用nightlytest仓库。要重新启用它,请使用--enable标记。以下命令禁用nightly仓库。

$ sudo yum-config-manager --disable docker-ce-nightly

了解nightly和test通道。

安装Docker Engine - Community

  1. 安装最新版本的Docker Engine - Community和containerd,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io

如果提示您接受GPG密钥,请验证指纹是否与060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35匹配,如果是,则接受它。

> **有多个Docker仓库吗?**

> 如果启用了多个Docker仓库,则未在`yum install`或`yum update`命令中指定版本时,将始终安装可能的最高版本,这可能不适合您的稳定性需求。

Docker已安装但尚未启动。 docker组已创建,但没有用户添加到该组。

  1. 要安装特定版本的Docker Engine - Community,请在仓库中列出可用版本,然后选择并安装:
1. 按顺序列出您仓库中可用的版本。 此示例按版本号(从高到低)对结果进行排序,并被截断:

```
$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable
```

返回的列表取决于启用的仓库,并且特定于您的CentOS版本(在此示例中由`.el7`后缀指示)。

2. 通过其完整软件包名称安装特定版本,该软件包名称是软件包名称(`docker-ce`)加上版本字符串(第二列),从第一个冒号(`:`)开始,直至第一个连字符,并用连字符(`-`)分隔。 例如`docker-ce-18.09.1`。

```
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
```

Docker已安装但尚未启动。 `docker`组已创建,但没有用户添加到该组。
  1. 启动Docker
$ sudo systemctl start docker
  1. 通过运行hello-world镜像来验证Docker Engine - Community是否正确安装。
$ sudo docker run hello-world

此命令下载测试镜像并在容器中运行。 容器运行时,它会打印消息并退出。

Docker Engine-Community已安装并正在运行。 您需要使用sudo运行Docker命令。 继续阅读Linux上Docker安装之后,以允许非特权用户运行Docker命令以及其他可选配置步骤。

升级Docker Engine - Community

要升级Docker Engine - Community,请按照安装的步骤进行操作,选择要安装的新版本。

从软件包安装

如果您无法使用Docker的仓库安装Docker,则可以下载适用于您的发行版的.rpm文件并手动安装。 每次升级Docker Engine - Community时,都需要下载一个新文件。

  1. 转到https://download.docker.com/linux/centos/7/x86_64/stable/Packages/并下载要安装的Docker版本的.rpm文件。

注意:要安装nightly或test(预发行版)软件包,请将上述URL中的stable改为nightly或test。 了解nightly和test通道

  1. 安装Docker Engine - Community,将下面的路径更改为您下载Docker软件包的路径。
$ sudo yum install /path/to/package.rpm

Docker已安装但尚未启动。 docker组已创建,但没有用户添加到该组。

  1. 启动Docker。
$ sudo systemctl start docker
  1. 通过运行hello-world镜像来验证Docker Engine - Community是否正确安装。
$ sudo docker run hello-world

此命令下载测试镜像并在容器中运行。 容器运行时,它会打印消息并退出。

Docker Engine - Community已安装并正在运行。 您需要使用sudo运行Docker命令。 继续执行Linux的安装后步骤,以允许非特权用户运行Docker命令以及其他可选配置步骤。

更新

要升级Docker Engine - Community,请下载更新的软件包文件并重复安装过程,使用yum -y upgrade而不是yum -y install并指向新文件。

使用便捷脚本进行安装

Docker在get.docker.comtest.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的发行版上,您需要使用适当的systemctlservice命令手动启动它。默认情况下,非root用户不能运行Docker命令。

注意:

要在没有root特权的情况下安装Docker,请参阅以非root用户身份运行Docker守护程序(非root模式)

非root模式目前可作为实验功能。

使用便捷脚本后升级DOCKER

如果使用便捷脚本安装了Docker,则应直接使用包管理器升级Docker。 重新运行便利程序脚本没有任何好处,并且如果尝试重新添加已经添加到主机的仓库,则可能导致问题。

卸载Docker Engine - Community

  1. 卸载Docker软件包:
$ sudo yum remove docker-ce
  1. 主机上的镜像,容器,卷或自定义配置文件不会自动删除。 要删除所有镜像,容器和卷,使用以下命令:
$ sudo rm -rf /var/lib/docker

您必须手动删除所有已编辑的配置文件。

下一步