sudo systemctl status docker
确认Docker服务是否正在运行。若未启动,可通过sudo systemctl start docker
启动服务。docker ps -a
查看所有容器(包括停止的容器),确认目标容器是否处于运行状态。docker logs <container_id/name>
获取容器运行日志,若需实时跟踪日志,可添加-f
参数(如docker logs -f <container_id>
)。日志中的Error
、Failed
等关键字是定位问题的关键线索。journalctl -u docker.service
查看Docker服务的系统日志,或通过dmesg
、tail -f /var/log/syslog
获取更详细的系统级错误信息。/etc/docker/daemon.json
,需确保JSON格式正确(可使用jq . /etc/docker/daemon.json
验证)。常见错误包括缺少逗号、无效参数(如错误的log-level
值)。修改后需重启Docker服务(sudo systemctl restart docker
)使配置生效。top
、htop
查看CPU、内存使用情况,df -h
检查磁盘空间(确保根分区剩余空间大于10%)。若资源不足,可通过docker system prune
清理无用镜像、容器、卷,释放空间。docker stats <container_id>
查看容器的CPU、内存使用率。若容器资源占用过高,可通过docker update --memory="512m" --cpus="1" <container_id>
调整资源限制。ping google.com
测试宿主机网络连接,若无法访问外部网络,需检查宿主机网络配置(如网卡状态、DNS设置)。docker network ls
查看网络列表,docker network inspect <network_name>
检查网络详情(如子网、网关)。若容器IP冲突,可通过docker inspect <container_id> | grep IPAddress
查看容器IP,修改docker-compose.yml
或docker run
命令中的--ip
参数调整。sudo netstat -tuln | grep <port>
或ss -tuln | grep <port>
查看端口占用情况。若端口已被占用,可修改容器端口映射(如docker run -p 8080:80 nginx
将宿主机8080端口映射到容器80端口)。permission denied
错误(如无法执行docker ps
),需将当前用户加入docker
组:sudo usermod -aG docker $USER
,退出终端并重新登录使更改生效。验证权限:newgrp docker
后执行docker ps
,若正常则说明权限问题已解决。uname -r
查看内核版本,确保符合要求。modinfo overlay
、modinfo aufs
检查必要的模块是否加载(OverlayFS是Docker默认的存储驱动)。若模块未加载,可通过sudo modprobe overlay
手动加载,或编辑/etc/modules
文件添加模块名称(重启后生效)。docker exec -it <container_id> /bin/bash
进入容器命令行,查看容器内进程(ps aux
)、文件系统(ls /
)、环境变量(env
)等状态,定位应用层问题(如配置文件错误、依赖缺失)。docker restart <container_id>
重启容器,尝试恢复服务。sudo systemctl restart docker
重启Docker服务,清除临时状态。sudo apt purge docker-ce docker-ce-cli containerd.io
卸载,再重新安装),或删除/var/lib/docker
目录(需谨慎操作,会清除所有容器、镜像、卷数据)。以上方法覆盖了Docker在Debian中的常见故障场景,可根据具体错误信息逐步排查。若问题仍未解决,建议查阅Docker官方文档或在社区(如Stack Overflow、Docker论坛)提交详细错误日志寻求帮助。