注:以下步骤两台机器上都要执行:
0、删除podman
CentOS 8 内置了podman, 删掉。
[root@master01 ~]# yum remove podman
1、使用国内(阿里)源:
[root@master01 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、安装Docker:
[root@master01 ~]# yum -y install docker-ce
可能会报错:
[root@master01 ~]# yum -y install docker-ce
CentOS-8 - Base - mirrors.aliyun.com 14 kB/s | 3.8 kB 00:00
CentOS-8 - Extras - mirrors.aliyun.com 6.4 kB/s | 1.5 kB 00:00
CentOS-8 - AppStream - mirrors.aliyun.com 16 kB/s | 4.3 kB 00:00
Docker CE Stable - x86_64 40 kB/s | 22 kB 00:00
Error:
Problem: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
- cannot install the best candidate for the job
- package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
- package containerd.io-1.2.13-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
解决方案:手动下载并安装软件包:
[root@master01 temp]# wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
[root@master01 temp]# yum install containerd.io-1.2.6-3.3.el7.x86_64.rpm
再将安装docker-ce即可。
3、配置iptables策略:
注:这是一个大坑,如不正确配置,会导致主机之间不能正常通信。
新版的docker在机器重启时docker会自动设置FORWORD策略为DROP。
修改 /lib/systemd/system/docker.service
在[Service]标签下加入如下参数:
ExecStartPost=/sbin/iptables -P FORWARD ACCEPT
使配置生效:
systemctl daemon-reload
systemctl restart docker
最好重启(reboot)
4、添加aliyun docker仓库加速
[root@master01 ~]# mkdir -p /etc/docker
[root@master01 ~]# tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://fl791z1h.mirror.aliyuncs.com"]
}
EOF
[root@master01 ~]# systemctl daemon-reload
[root@master01 ~]# systemctl restart docker