当 Docker 镜像构建或拉取失败时,可以按照以下步骤排查和解决问题:
docker build -t my-image . # 构建失败时查看完整错误输出
docker pull image:tag # 拉取失败时观察报错
# 临时设置代理(需替换为实际代理地址)
export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY=http://your-proxy:port
# 检查Docker服务配置
sudo systemctl show --property=Environment docker
json
// 编辑 /etc/docker/daemon.json
{
"registry-mirrors": ["https://<your-mirror>.mirror.aliyuncs.com"]
}
bash
sudo systemctl restart docker
# 修改Docker DNS(如Google DNS)
sudo mkdir -p /etc/docker
echo '{"dns": ["8.8.8.8", "8.8.4.4"]}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker
RUN
、COPY
大小写)。COPY
或 ADD
的文件在构建上下文内。# 分阶段构建(定位失败层)
docker build --target=build-stage -t my-image .
# 进入失败前的最后成功层
docker run -it --rm <last-working-layer-id> sh
# 登录镜像仓库(如Docker Hub、私有仓库)
docker login registry.example.com
docker system df # 查看磁盘使用
docker system prune -a # 清理无用镜像(谨慎操作)
# 查看Docker守护进程日志
journalctl -u docker.service -n 50 --no-pager
# 详细构建日志(保存到文件)
docker build --no-cache --progress=plain -t my-image . > build.log 2>&1
FROM alpine:3.19
)。--platform=linux/amd64
)。ubuntu:latest
改为 alpine
。python:3.9-slim
)。通过以上步骤,90%的镜像问题可以解决。如果仍失败,请提供具体错误信息进一步分析!