如何在 CentOS 8 下安装 Docker Engine

技术 秋水逸冰 10456 次围观 7 次吐槽

CentOS 8 都已经到版本 8.2.2004 了,Docker 官方还是默认只提供 CentOS 7 的安装包。这是怎么回事呢?
网上搜了一下,说是因为 Red Hat 自己推出了 buildahpodman 准备替代 Docker。
虽说兼容性不错,但是你非要在 CentOS 8 下安装 Docker 能不能办到呢?
办法还是有的,只是需要手动来操作。稍微花点时间,按照本文操作步骤来就可以了。

本文将讲解如何在 CentOS 8 下安装 Docker Engine 以及 docker-compose。

2020 年 11 月 8 日更新日志:

写作本文时,Docker 尚未正式发布在 CentOS 8 下的 rpm 安装包。
2020 年 9 月 17 日,Docker 已经正式发布 CentOS 8 下的 rpm 安装包,因此有更简单的方式来安装 Docker Engine。
使用 root 用户运行以下命令:

wget -qO- get.docker.com | bash

安装完成后的版本号:

Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:02:36 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:01:11 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

至于 docker-compose 的安装方法,可以继续参考本文下面第 6 步的方法。

———-以下为原文的分界线———-

在写本文时,Docker 最新版本号是 19.03.12。

$ docker version
Client: Docker Engine - Community
 Version:           19.03.12
 API version:       1.40
 Go version:        go1.13.10
 Git commit:        48a66213fe
 Built:             Mon Jun 22 15:46:54 2020
 OS/Arch:           linux/amd64
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          19.03.12
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.10
  Git commit:       48a66213fe
  Built:            Mon Jun 22 15:45:28 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

1. 安装 docker-ce.repo

CentOS 8 下默认已经是 dnf 命令来进行包管理。
第一步就是安装 Docker 官方的 repo,执行命令如下:

$ dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

2. 显示可用版本

$ dnf list docker-ce --showduplicates

返回一览如下。

Available Packages
docker-ce.x86_64    17.03.0.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    17.03.1.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    17.03.2.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    17.03.3.ce-1.el7           docker-ce-stable
docker-ce.x86_64    17.06.0.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    17.06.1.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    17.06.2.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    17.09.0.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    17.09.1.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    17.12.0.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    17.12.1.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    18.03.0.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    18.03.1.ce-1.el7.centos    docker-ce-stable
docker-ce.x86_64    18.06.0.ce-3.el7           docker-ce-stable
docker-ce.x86_64    18.06.1.ce-3.el7           docker-ce-stable
docker-ce.x86_64    18.06.2.ce-3.el7           docker-ce-stable
docker-ce.x86_64    18.06.3.ce-3.el7           docker-ce-stable
docker-ce.x86_64    3:18.09.0-3.el7            docker-ce-stable
docker-ce.x86_64    3:18.09.1-3.el7            docker-ce-stable
docker-ce.x86_64    3:18.09.2-3.el7            docker-ce-stable
docker-ce.x86_64    3:18.09.3-3.el7            docker-ce-stable
docker-ce.x86_64    3:18.09.4-3.el7            docker-ce-stable
docker-ce.x86_64    3:18.09.5-3.el7            docker-ce-stable
docker-ce.x86_64    3:18.09.6-3.el7            docker-ce-stable
docker-ce.x86_64    3:18.09.7-3.el7            docker-ce-stable
docker-ce.x86_64    3:18.09.8-3.el7            docker-ce-stable
docker-ce.x86_64    3:18.09.9-3.el7            docker-ce-stable
docker-ce.x86_64    3:19.03.0-3.el7            docker-ce-stable
docker-ce.x86_64    3:19.03.1-3.el7            docker-ce-stable
docker-ce.x86_64    3:19.03.2-3.el7            docker-ce-stable
docker-ce.x86_64    3:19.03.3-3.el7            docker-ce-stable
docker-ce.x86_64    3:19.03.4-3.el7            docker-ce-stable
docker-ce.x86_64    3:19.03.5-3.el7            docker-ce-stable
docker-ce.x86_64    3:19.03.6-3.el7            docker-ce-stable
docker-ce.x86_64    3:19.03.7-3.el7            docker-ce-stable
docker-ce.x86_64    3:19.03.8-3.el7            docker-ce-stable
docker-ce.x86_64    3:19.03.9-3.el7            docker-ce-stable
docker-ce.x86_64    3:19.03.10-3.el7           docker-ce-stable
docker-ce.x86_64    3:19.03.11-3.el7           docker-ce-stable
docker-ce.x86_64    3:19.03.12-3.el7           docker-ce-stable

可以看到,截至目前,最新版已经到了 19.03.12

3. 事先安装依赖

要想安装 docker-ce 必须事先要安装好依赖 containerd.io,这里就是和 CentOS 7 下自动安装的最大区别。点击这里,查看最新版的 containerd.io。适当地替换下面命令里的下载链接。
执行如下命令:

$ dnf install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.2.el7.x86_64.rpm

4. 安装 Docker

执行如下命令,注意其中有个 --nobest 选项:

$ dnf install -y --nobest docker-ce

5. 启动 Docker

上一步正确安装以后,接下来就要启动 Docker,并设置开机自启动。
启动 Docker 命令:

$ systemctl start docker

查看 Docker 状态:

$ systemctl status docker

设置开机自启动 Docker 命令:

$ systemctl enable docker

查看 Docker 版本信息:

$ docker version

6. 安装 docker-compose

利用 pip3 来安装 docker-compose 最为简单。
事先安装好 pip3 是必要的,如果本机没有安装,执行如下命令安装 pip3

$ dnf install -y python3-pip

查看 pip3 版本信息:

$ pip3 --version

返回值:

pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)

安装 docker-compose 命令

$ pip3 install docker-compose

查看 docker-compose 版本信息:

$ docker-compose --version

返回值:

docker-compose version 1.26.2, build unknown

转载请注明:秋水逸冰 » 如何在 CentOS 8 下安装 Docker Engine

发表我的评论
取消评论

请输入正确答案后提交评论 *

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (7)

  1. 在vultr的机器上装了almalinux,AlmaLinux release 8.4 (Electric Cheetah),然后想装docker,然后添加过官方的Docker CE存储库后,安装Docker-CE软件包报错如下: created by dnf config-manager from https://download.docker.com/linux/cen 409 B/s | 381 B 00:00 Errors during downloading metadata for repository 'download.docker.com_linux_centos_docker-ce.rep': - Status code: 404 for https://download.docker.com/linux/centos/docker-ce.rep/repodata/repomd.xml (IP: 2600:9000:2157:b000:3:db06:4200:93a1) Error: Failed to download metadata for repo 'download.docker.com_linux_centos_docker-ce.rep': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried 麻烦秋水老哥帮忙看看,谢谢
    dream1个月前 (2021-08-21)回复
  2. 需要提示的一点,docker官方之所以迟迟没有支持,是因为fedora 32+和centos8针对容器引入了(新的cgroup机制)[https://medium.com/nttlabs/cgroup-v2-596d035be4d7],而podman孵化自cri-o,其cli完全照搬docker,并且直接支持cgroups v2以及pod管理(而podman管理pod比k3s更轻量)。 好消息是docker的20.10版本据说已经commit了cgroups v2的支持。也许官方支持centos 8 stream和fedora 32+是不久将来的事
    孙冒9个月前 (2021-01-08)回复
  3. 错误: 问题: problem with installed package podman-docker-2.0.5-5.module_el8.3.0+512+b3b58dca.noarch - package docker-ce-3:20.10.1-3.el8.x86_64 conflicts with docker provided by podman-docker-2.0.5-5.module_el8.3.0+512+b3b58dca.noarch - cannot install the best candidate for the job
    Yuanhao10个月前 (2020-12-16)回复
    • CentOS 8 下使用脚本安装是最方便的。文章中已有明确提示了。
      秋水逸冰9个月前 (2020-12-16)回复
  4. podman 和 docker 啥关系?
    乐乐11个月前 (2020-11-05)回复
  5. 牛逼的牛!
    GG1年前 (2020-09-09)回复
  6. 前排围观
    hey1年前 (2020-07-29)回复