Docker 服务启动失败可能由多种原因导致,以下是最常见的故障原因及对应的解决方案:
Address already in use 或端口绑定失败bash
# 查看端口占用
sudo netstat -tulnp | grep <端口号>
# 停止冲突服务 或 修改Docker配置文件
sudo systemctl stop apache2
sudo systemctl restart dockerFailed to start Docker Application Container Engine 或存储驱动错误overlay2 但磁盘格式为vfat)df -h 检查)bash
# 检查存储驱动配置
docker info | grep "Storage Driver"
# 修改为兼容的驱动(如devicemapper)
sudo vi /etc/docker/daemon.json
json
{
"storage-driver": "devicemapper"
}Permission denied 或 Got permission denied while trying to connectdocker 组/var/run/docker.sock 权限错误bash
# 将用户加入docker组
sudo usermod -aG docker $USER
# 重启服务并重新登录
newgrp docker
sudo systemctl restart dockerFailed to connect to containerd 或依赖项报错containerd)未运行bash
# 检查依赖服务状态
systemctl status containerd
# 启动依赖服务
sudo systemctl start containerd
sudo systemctl enable containerdYour kernel does not support cgroup 等内核错误overlay、bridge-nf-call-iptables)bash
# 检查内核版本
uname -r
# 加载内核模块
sudo modprobe overlay
sudo modprobe br_netfilterError starting daemon: invalid configuration/etc/docker/daemon.json 格式错误bash
# 验证JSON格式
sudo jq . /etc/docker/daemon.json
# 临时恢复默认配置测试
sudo mv /etc/docker/daemon.json /etc/docker/daemon.json.bak
sudo systemctl restart docker通过日志定位具体原因:
# 查看Docker服务日志(Systemd)
journalctl -u docker.service -n 50 --no-pager
# 或直接查看Docker日志文件
cat /var/log/docker.log
sudo systemctl restart dockersudo systemctl status docker -lbash
sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sockiptables/nftables规则未拦截Docker网络sudo apt-get upgrade docker-ce通过以上步骤,90%的启动问题可被解决。如果问题仍存在,请提供具体错误日志进一步分析。