push - 推送,pull - 拉取
写在前面
本文适用于 Linux 系统中挂了 VPN,但是 docker push
依旧非常缓慢的问题,该问题在官方教程中有相应介绍。对于 VPN,docker 不认 export http_proxy=...
设置的环境变量,也不认 daemon.json
文件中的 "http-proxy": ...
设置,只能在 systemd 的 http-proxy.conf
文件进行配置。
本文不一定能解决 docker pull
慢的问题,docker pull
可以通过换源提速(docker push
不行)。
具体操作
记得 docker login
docker push
前需要登录 Docker Hub:sudo docker login -u YOUR-USER-NAME
,建议 docker login
和 docker push
前都加上 sudo
,否则可能出现 denied: requested access to the resource is denied
的报错。
通过 systemd 配置代理
首先创建一个目录,用于存放配置文件。
sudo mkdir -p /etc/systemd/system/docker.service.d
然后创建配置文件,使用 vim 或者 gedit 编辑该文件。
sudo touch /etc/systemd/system/docker.service.d/http-proxy.conf
sudo gedit /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"
保存文件后,在命令行中刷新更改并重启 docker。
sudo systemctl daemon-reload && sudo systemctl restart docker
再试试 sudo docker pull
,速度快了很多。