Docker拉取官方镜像源

225 阅读2分钟

关于Docker拉取官方镜像源

继去年Docker Hub被不知名原因封锁后,导致各大NAS(网络附属存储)的镜像库或注册表都无法使用,不能直接呈现列表。只能使用国内其他的镜像源下载镜像,虽说也可以下载,但是国内大部分镜像源的镜像版本都很低,一些小的镜像源甚至都找不到。一部分博主的解决方法是使用第三方克隆自docker hub的镜像库,或者使用加速服务等。这些方法普遍有一个问题就是:不稳定,某些小项目镜像更新不及时或者还是根本找不到。那么我这里提供一个解决方案:使用代理直接拉取Docker Hub的镜像。

代理选择

首先这里我使用小猫的windos程序作为代理服务器 你也可以使用其他的 只需要有代理地址即可

屏幕截图 2025-01-06 160429.png

在设置中打开局域网链接开关

屏幕截图 2025-01-06 160556.png

这样同一局域网内的设备可以通过设置代理地址为:本主机ip地址+端口

我这里电脑的IP为:192.168.0.104

小猫代理端口为:7890

Docker设置代理

/etc/systemd/system/docker.service.d/ 目录下创建代理配置文件(如果没有这个目录,可以先创建)

sudo mkdir -p /etc/systemd/system/docker.service.d/
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

添加如下内容:

[Service]
Environment="HTTP_PROXY=http://192.168.0.104:7890"
Environment="HTTPS_PROXY=http://192.168.0.104:7890"
Environment="NO_PROXY=localhost,127.0.0.1"

保存后,重新加载 systemd 配置并重启 Docker 服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

重启后即可正常拉取镜像

这时在小猫的连接列表可以看到是从官方镜像源仓库拉取的镜像

屏幕截图 2025-01-06 174951.png

关于Docker设置代理踩的坑

一开始一直编辑/etc/docker/daemon.json 添加如下代理:

{  
 "proxies": {  
 "http-proxy": "http://:",  
 "https-proxy": "http://:",  
 "no-proxy": "localhost,127.0.0.1"  
 }  
}

这个配置是修改容器内环境变量的,和docker pull无关 所以不要再编辑这个配置文件了