症状:执行docker命令时提示"无法连接到Docker守护进程"
解决方案:
# 检查Docker服务状态
sudo systemctl status docker
# 启动Docker服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
症状:docker pull
命令执行失败,提示"pull access denied"或网络错误
解决方案:
- 检查镜像名称拼写是否正确
- 确认是否有权限访问私有仓库
- 配置镜像加速器(针对国内用户):
bash
# 编辑或创建daemon.json
sudo nano /etc/docker/daemon.json
# 添加镜像加速器地址(如阿里云)
{
"registry-mirrors": ["https://<your-mirror>.mirror.aliyuncs.com"]
}
# 重启Docker
sudo systemctl restart docker
症状:容器启动失败,提示端口已被占用
解决方案:
# 查看端口占用情况
sudo netstat -tulnp | grep <端口号>
# 解决方案:
# 1. 停止占用端口的服务
# 2. 修改容器映射端口:docker run -p 新端口:容器端口
# 3. 使用--network=host模式(不推荐)
症状:容器启动失败,提示内存不足、磁盘空间不足等
解决方案: - 清理无用镜像和容器: ```bash # 删除所有停止的容器 docker container prune
# 删除未被使用的镜像、网络等 docker system prune
# 查看磁盘使用情况 docker system df ``` - 增加Docker资源限制(在Docker Desktop设置中)
症状:操作Docker时提示权限不足
解决方案:
# 将当前用户加入docker组
sudo usermod -aG docker $USER
# 重新登录使更改生效
newgrp docker
症状:容器状态显示为Exited (0)或Exited (非0)
解决方案:
# 查看容器日志
docker logs <容器ID>
# 以交互模式运行容器进行调试
docker run -it <镜像名> /bin/bash
# 确保容器内有前台进程运行(不要使用后台进程)
症状:容器无法访问外部网络或宿主机
解决方案:
# 检查Docker网络
docker network ls
docker network inspect <网络名>
# 尝试使用不同网络模式
docker run --network=host ...
docker run --network=bridge ...
docker run --network=none ...
查看详细错误信息:
docker inspect <容器ID>
启用调试模式:
sudo dockerd --debug
检查Docker版本兼容性:
docker version
docker info
验证Docker安装:
docker run hello-world
检查内核日志:
dmesg | grep docker
journalctl -u docker.service
遇到具体问题时,建议先查看详细的错误信息,然后根据错误提示进行针对性解决。