原因:Docker未正确安装、环境变量未配置,或未将用户添加到docker组。
解决方法:
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io重新安装。echo $PATH,确保包含/usr/bin(Docker默认安装路径)。若未包含,可临时添加export PATH=$PATH:/usr/bin或永久修改~/.bashrc文件。docker组:运行sudo usermod -aG docker $USER,注销并重新登录使更改生效。常见原因:端口冲突、存储驱动不兼容、配置文件错误、资源不足。
解决方法:
sudo systemctl status docker.service,查看具体错误信息(如exit-code)。sudo journalctl -u docker.service -n 50 --no-pager查看详细日志,根据错误类型调整。sudo netstat -tulnp | grep <端口号>,停止冲突进程或修改/etc/docker/daemon.json中的端口配置。/etc/docker/daemon.json,设置"storage-driver": "overlay2"(推荐),保存后重启服务sudo systemctl restart docker。df -h检查磁盘空间(需预留至少10GB),docker stats查看容器资源占用,清理无用镜像/容器(docker system prune)。原因:当前用户未加入docker组,默认需要root权限。
解决方法:
docker组:sudo usermod -aG docker $USER。newgrp docker使组权限立即生效。docker run hello-world,若无需sudo则解决成功。原因:系统内核不支持当前存储驱动(如overlay),或daemon.json配置错误。
解决方法:
/etc/docker/daemon.json,将存储驱动改为overlay2(Debian推荐):{"storage-driver": "overlay2"}。sudo systemctl restart docker。原因:权限不足(未登录Docker Hub或其他私有仓库)、镜像名称错误、网络问题。
解决方法:
docker login,输入账号密码。nginx:latest而非nginx,后者需指定标签)。ping hub.docker.com,确保能访问Docker Hub。/etc/docker/daemon.json中添加"insecure-registries": ["myregistry.example.com:5000"]并重启服务。原因:Debian内核版本低于Docker最低要求(通常需4.9及以上)。
解决方法:
uname -r,若低于4.9,升级内核:
sudo apt install --install-recommends linux-generic-hwe-22.04,重启系统。docker info,查看Kernel Version是否符合要求。原因:/etc/docker/daemon.json文件存在语法错误(如缺少逗号、引号)。
解决方法:
jq '.' /etc/docker/daemon.json(需安装jq:sudo apt install jq),根据错误提示修改。sudo mv /etc/docker/daemon.json /etc/docker/daemon.json.bak,创建新文件sudo nano /etc/docker/daemon.json,输入正确内容(如{"registry-mirrors": ["https://hub-mirror.c.163.com"]}),保存后重启服务。原因:Docker镜像、容器或卷占用过多磁盘空间,导致无法启动或运行容器。
解决方法:
docker system prune -a(删除所有未使用的镜像、容器、网络),或单独清理:
docker container prune。docker image prune。fdisk或GParted工具扩展分区,或添加新磁盘。