清理与重装Docker的完整步骤
停止Docker服务并清理残留文件
执行以下命令彻底停止Docker相关进程并删除所有配置文件:
systemctl stop dockerpgrep -f 'docker|containerd|dockerd' | xargs -I {} sh -c 'echo "Killing PID: {}"; kill -9 {}'
rm -rf /usr/bin/docker* /usr/bin/containerd* /usr/bin/runc /usr/bin/ctr
rm -rf /var/lib/docker/*
rm -rf /var/run/docker* /var/run/containerd*
rm -rf /etc/docker
rm -rf /etc/systemd/system/docker.service
下载稳定版Docker二进制文件
推荐使用26.1.4版本以避免最新版潜在问题:
wget https://download.docker.com/linux/static/stable/x86_64/docker-26.1.4.tgz
tar -xvf docker-26.1.4.tgz
cp docker/* /usr/bin/
配置基础服务文件
创建简化版systemd服务配置:
cat <<EOF > /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service containerd.service
Wants=network-online.target[Service]
Type=simple
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP \$MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s[Install]
WantedBy=multi-user.target
EOF
最小化daemon配置
创建仅包含核心参数的配置文件:
mkdir -p /etc/docker
cat <<EOF > /etc/docker/daemon.json
{"data-root": "/var/lib/docker","hosts": ["unix:///var/run/docker.sock"],"log-driver": "json-file","log-opts": {"max-size": "100m","max-file": "3"}
}
EOF
启动与验证
重新加载服务配置并检查启动日志:
systemctl daemon-reload
systemctl start docker
journalctl -u docker -f
验证时应重点关注是否出现"Loading containers: start."日志条目,成功加载容器表示服务恢复正常。若遇到权限问题,可尝试执行chmod +x /usr/bin/docker*
赋予可执行权限。