温馨提示×

ubuntu docker为何无法拉取

小樊
51
2026-09-19 11:51:46
栏目: 智能运维

在 Ubuntu 上使用 Docker 时无法拉取镜像(docker pull 失败),通常有以下几种常见原因和对应的排查/解决方法。我按最常见 → 较少见给你梳理一下。


一、网络问题(最常见)

1️⃣ 国内访问 Docker Hub 被限制

Docker Hub 官方源在国内经常超时或极慢。

现象

docker pull ubuntu
# 卡住或报错
error pulling image configuration: ...

解决方法:配置国内镜像加速器

sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json

写入:

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

保存后:

sudo systemctl daemon-reexec
sudo systemctl restart docker

再试:

docker pull ubuntu

二、DNS 解析失败

2️⃣ Docker 容器/守护进程 DNS 异常

现象

could not resolve host: registry-1.docker.io

解决

sudo nano /etc/docker/daemon.json

加:

{
  "dns": ["8.8.8.8", "114.114.114.114"]
}
sudo systemctl restart docker

三、Docker 服务未正常运行

3️⃣ Docker 没启动

systemctl status docker

如果没运行:

sudo systemctl start docker
sudo systemctl enable docker

四、服务器在无外网环境

4️⃣ 内网 / 云服务器无公网

  • 公司内网
  • 云服务器未开公网
  • 防火墙禁止 443

检查

curl https://registry-1.docker.io

不通说明网络被限制。

解决

  • 使用私有镜像仓库
  • 离线导入镜像

五、Docker 版本或系统问题

5️⃣ 旧版本 Docker bug

docker version

建议:

sudo apt remove docker docker.io
sudo apt install docker.io

或使用官方源安装最新版。


六、查看详细错误(很重要)

请贴出你的完整报错,例如:

docker pull nginx

报错示例:

Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: TLS handshake timeout

我可以精准判断是网络、DNS 还是镜像源问题


快速自检清单 ✅

  • [ ] 能否访问外网
  • [ ] 是否配置国内镜像
  • [ ] Docker 是否运行
  • [ ] 是否公司/云环境限制

如果你愿意,可以把 Ubuntu 版本 + 报错截图/文本 发我,我可以直接告诉你该怎么改。

0