Docker镜像下载
我们在下载镜像时常常遇到下载很慢或者根本下载不了的情况,这时候有三种情况:
- 网络配置不正确,导致本来可以下载但是下载不了
- 需要加载国内代理加速
- 需要用花钱的代理(懂吧?)来下载
现在来分类分析:
一、网络配置不正确
首先确认你的IP、网关、域名解析配置正确,能通外网(用ping www.baidu.com测试)。
二、加载国内代理加速
在docker配置文件中,加入代理镜像地址 registry-mirrors,如下所示:
{
"data-root": "/home/lib/docker",
"exec-opts": [
"native.cgroupdriver=cgroupfs"
],
"insecure-registries": [
"192.168.1.1:5000","192.168.1.2:5000"
],
"registry-mirrors": [
"https://docker.nju.edu.cn/"
]
}
注意这个文件的格式要求极高,别写错了字符空格等,最后systemctl restart docker 重启docker服务。根据一些环境和镜像的不同详细记录如下:
南京大学镜像站
Docker Hub
Linux
配置文件 /etc/docker/daemon.json 中加入:registry-mirrors: ["https://docker.nju.edu.cn/"],重新启动 docker.
macOS
打开 Docker.app
进入偏好设置页面 (快捷键 ⌘, )
打开 Advanced 选项卡
在 Registry mirrors 中添加 https://docker.nju.edu.cn/
点击下方的 Restart 按钮
Docker Desktop
各平台都一样:
打开Settings-Docker Engine
在 registry-mirrors中添加https://docker.nju.edu.cn/
点击Apply&Restart
Google Container Registry
gcr.io
将 gcr.io 替换为 gcr.nju.edu.cn 即可:
docker pull gcr.io/cadvisor/cadvisor:v0.39.3
=>
docker pull gcr.nju.edu.cn/cadvisor/cadvisor:v0.39.3
k8s.gcr.io
将 k8s.gcr.io 替换为 gcr.nju.edu.cn/google-containers 即可:
docker pull k8s.gcr.io/kube-proxy:v1.18.6
=>
docker pull gcr.nju.edu.cn/google-containers/kube-proxy:v1.18.6
GitHub Container Registry
ghcr.io
将 ghcr.io 替换为 ghcr.nju.edu.cn 即可:
docker pull ghcr.io/github/super-linter:latest
=>
docker pull ghcr.nju.edu.cn/github/super-linter:latest
NVIDIA GPU Cloud
nvcr.io
将 nvcr.io 替换为 ngc.nju.edu.cn 即可:
docker pull nvcr.io/nvidia/pytorch:21.12-py3
=>
docker pull ngc.nju.edu.cn/nvidia/pytorch:21.12-py3
Quay Container Registry
quay.io
将 quay.io 替换为 quay.nju.edu.cn 即可:
docker pull quay.io/prometheus/prometheus:latest
=>
docker pull quay.nju.edu.cn/prometheus/prometheus:latest
Docker Proxy
Docker Hub
Linux
在配置文件 /etc/docker/daemon.json 中加入:registry-mirrors: ["https://dockerproxy.com"]重新启动 docker,命令行执行 docker info,如果从输出中看到如下内容,说明配置成功。
Registry Mirrors:
https://dockerproxy.com
macOS
打开 Docker.app
进入偏好设置页面 (快捷键 ⌘, )
打开 Advanced 选项卡
在 Registry mirrors 中添加 https://dockerproxy.com
点击下方的 Restart 按钮
Docker Desktop
各平台都一样:
打开Settings-Docker Engine
在 registry-mirrors 中添加 https://dockerproxy.com
点击Apply&Restart
Google Container Registry
gcr.io
将 gcr.io 替换为 gcr.dockerproxy.com 即可:
docker pull gcr.io/username/image:tag
=>
docker pull gcr.dockerproxy.com/username/image:tag
k8s.gcr.io
将 k8s.gcr.io 替换为 k8s.dockerproxy.com 即可:
docker pull k8s.gcr.io/username/image:tag
=>
docker pull k8s.dockerproxy.com/username/image:tag
GitHub Container Registry
ghcr.io
将 ghcr.io 替换为 ghcr.dockerproxy.com 即可:
docker pull ghcr.io/github/super-linter:latest
=>
docker pull ghcr.dockerproxy.com/github/super-linter:latest
Microsoft Artifact Registry
mcr.microsoft.com
将 mcr.microsoft.com 替换为 mcr.dockerproxy.com 即可:
docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic:latest
=>
docker pull mcr.dockerproxy.com/azure-cognitive-services/diagnostic:latest
Quay Container Registry
quay.io
将 quay.io 替换为 quay.dockerproxy.com 即可:
docker pull quay.io/prometheus/prometheus:latest
=>
docker pull quay.dockerproxy.com/prometheus/prometheus:latest
三、用花钱的代理
如下在你的工作环境中配置环境变量 http_proxy 和 https_proxy 可能还是不行:
export http_proxy=http://1.2.3.4:5566
export https_proxy=http://1.2.3.4:5566
可以尝试把代理配置写到docker的进程守护文件 /etc/systemd/system/multi-user.target.wants/docker.service 中。如下所示:
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
Environment="HTTP_PROXY=http://1.2.3.4:5566/"
Environment="HTTPS_PROXY=http://1.2.3.4:5566/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
然后用systemctl重新加载配置文件并重启docker服务。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏