之前搭建环境过程中遇到了Docker一直连接不到官方镜像源的问题,好多镜像源都失效了,于是使用代理后发现还是连接不上,试了好多种方法都失败了,于是简单记录分享一下。
代理之后连接不上官方镜像源的原因:
Docker因为运行在守护进程中,通常不会直接使用系统的代理设置。这也是为什么你在活动记录中看不到docker pull的请求。可以尝试以下步骤来确保Docker拉取镜像时通过代理:
Docker的守护进程不会自动继承终端中的环境变量,因此需要手动为Docker守护进程设置代理。
配置代理方法,创建 Docker 守护进程的代理配置文件::
sudo mkdir -p /etc/systemd/system/docker.service.d
在 /etc/systemd/system/docker.service.d/ 目录下创建代理配置文件(例如 http-proxy.conf):
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
在文件中添加代理设置:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
注意:将 127.0.0.1:7890 替换为你的代理的实际地址和端口(例如SOCKS5代理通常是 127.0.0.1:7891)。
重新加载并重启Docker服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
可以检查Docker守护进程的环境变量,确认代理设置是否生效:
sudo systemctl show --property=Environment docker
输出中应包含配置的代理地址。如果包含,则表示代理设置已经生效。
重新尝试 docker pull 命令,观察是否能通过代理正常拉取。如果配置正确,你应该能够在活动列表中看到Docker的请求。