CentOS 8 都已经到版本 8.2.2004 了,Docker 官方还是默认只提供 CentOS 7 的安装包。这是怎么回事呢?
网上搜了一下,说是因为 Red Hat 自己推出了 buildah
和 podman
准备替代 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: falseServer: 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: trueServer: 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 Packagesdocker-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
7. 写在最后
如果系统开启了 firewalld,那么也许需要放行一下 Docker 的网卡才能正常使用网络。
执行命令:
$ firewall-cmd --permanent --zone=trusted --add-interface=docker0 $ firewall-cmd --reload
注意这里的 Docker 的网卡名为 docker0
。一般情况下都是这个名称,不过在此之前最好还是通过 ifconfig
命令来确认一下。
留言评论
暂无留言