当 Docker 创建容器失败时,可以按照以下步骤排查和解决问题:
首先获取具体的错误提示(关键步骤):
docker logs <容器ID或名称> # 查看已创建容器的日志
docker run --rm <镜像名> # 测试运行并自动删除容器(--rm参数)
Unable to find image 'xxx:latest' locallybash
docker pull <镜像名>:<标签> # 重新拉取镜像
docker images # 确认镜像是否存在Bind for 0.0.0.0:8080 failed: port is already allocatedbash
netstat -tuln | grep 8080 # 检查宿主机端口占用
docker run -p 8081:80 ... # 改用其他端口No space left on devicebash
docker system df # 查看Docker磁盘使用
docker system prune # 清理无用资源(镜像、容器等)Permission denied 或 Cannot connect to the Docker daemonbash
sudo usermod -aG docker $USER # 将用户加入docker组
newgrp docker # 刷新用户组
sudo systemctl restart docker # 重启Docker服务Container killed due to out-of-memorybash
docker run -m 512m ... # 限制内存为512MB
docker run --cpus=1 ... # 限制CPU核心数Mounts denied 或 Invalid volume specificationbash
docker run -v /host/path:/container/path ...Conflict. The container name "/xxx" is already in usebash
docker rm -f <旧容器名> # 强制删除旧容器
docker run --name <新名称>... # 指定新名称exec format error 或 kernel too oldbash
uname -m # 查看宿主机架构
docker inspect --format='{{.Architecture}}' <镜像名>查看Docker守护进程日志:
journalctl -u docker.service # Systemd系统
cat /var/log/docker.log # 其他系统
启用详细日志:
docker run --log-level=debug ...
检查容器启动配置:
docker inspect <容器ID> | grep -i "error"
bash
sudo apt-get update && sudo apt-get upgrade docker-cebash
docker run --rm -it alpine sh通过以上步骤,通常可以定位到具体原因。如果问题仍存在,请提供完整的错误信息以便进一步分析。