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

前提条件

操作系统要求

要安装Docker Engine,您需要一个CentOS 7的维护版本。不支持或未测试存档版本。
The centos-extras repository must be enabled. centos-extras库必须启用。默认情况下,此存储库是启用的,但是如果已禁用它,则需要 重新启用它。建议使用overlay2存储驱动程序。

卸载旧版本

较旧的Docker版本称为docker或docker-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软件包称为docker-ce。Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)

安装方法

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

  • 大多数用户会设置Docker的存储库并从中进行安装,以简化安装和升级任务。这是推荐的方法
  • 一些用户下载并手动安装 RPM软件包, 并完全手动管理升级。这在诸如在无法访问互联网的空白系统上安装Docker的情况下非常有用
  • 在测试和开发环境中,一些用户选择使用自动 便利脚本来安装Docker

使用存储库安装

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

设置存储库

安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。

$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

我使用华为云的云耀云服务器CentOS 7.6 64bit进行安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装DOCKER引擎

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

如果提示您接受GPG密钥,请验证指纹是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,则接受它。
在这里插入图片描述
Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户。

  1. 要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装:
    列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序,并被截断:
$ 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在此示例中以后缀表示)
在这里插入图片描述
通过其完全合格的软件包名称安装特定版本,该软件包名称是软件包名称(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 。
$ sudo docker run hello-world

此命令下载测试image并在容器中运行。容器运行时,它会打印参考消息并退出。
在这里插入图片描述
Docker Engine已安装并正在运行。您需要使用sudo来运行Docker命令。继续进行Linux后安装(Linux postinstall),以允许非特权用户运行Docker命令以及其他可选配置步骤。
升级DOCKER引擎:请按照安装说明,选择要安装的新版本。

从软件包安装

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

  1. 转到https://download.docker.com/linux/centos/ 并选择您的CentOS版本。然后浏览x86_64/stable/Packages/ 并下载.rpm您要安装的Docker版本的文件。
  2. 安装Docker Engine,将下面的路径更改为您下载Docker软件包的路径。sudo yum install /path/to/package.rpm
  3. 启动Docker。$ sudo systemctl start docker
  4. 通过运行hello-world 映像来验证是否正确安装了Docker Engine 。$ sudo docker run hello-world
    升级DOCKER引擎:要升级Docker Engine,请下载较新的软件包文件,然后使用代替重复安装过程,并指向新文件。
    To upgrade Docker Engine, download the newer package file and repeat the installation procedure, using yum -y upgrade instead of yum -y install, and pointing to the new file.

使用便捷脚本

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。
    详细内容参见用户手册,这里不对该方法进行测试

卸载Docker

卸载Docker Engine,CLI和Containerd软件包:$ sudo yum remove docker-ce docker-ce-cli containerd.io
主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:$ sudo rm -rf /var/lib/docker
您必须手动删除所有已编辑的配置文件。

参考:https://docs.docker.com/engine/install/centos/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐