停止Docker服务并清理残留文件

执行以下命令彻底停止Docker相关进程并删除所有配置文件:

systemctl stop docker
 pgrep -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*赋予可执行权限。

更多推荐