- 删除原来的docker
yum list installed | grep docker
sudo yum -y remove docker-ce.x86_64
sudo yum -y remove docker-ce-cli.x86_64
- 安装docker
tar xvf docker-20.10.8.tgz
cp docker/* /usr/bin
vi /etc/systemd/system/docker.service
- docker.service文件内容如下
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
- 赋予docker.service权限
chmod +x /etc/systemd/system/docker.service
- 启动docker
systemctl start docker
- 设置docker开机启动
systemctl enable docker.service
- 迁移docker存储目录
systemctl stop docker
mkdir -p /root/docker
rsync -avz /var/lib/docker/ /root/docker
vi /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {"max-size":"5m", "max-file":"1"},
"log-level": "error",
"data-root": "/root/docker"
}
8.重启docker
systemctl daemon-reload
systemctl restart docker
9.docker重建网络
最新版本的Docker支持与firewalld共存
前提:Docker版本大于等于 20.10.0,
Docker在最新的版本里自动创建了一个名为docker的 firewalld zone,并把它的所有网络接口(包括docker0)加入到了这个区域里面,执行下面的命令将你的docker0接口移到docker区域
yum -y install bridge-utils
pkill docker
iptables -t nat -F
#关闭网桥
ifconfig docker0 down
## 删除docker0 网卡
brctl delbr docker0
docker -d
systemctl restart docker