Docker代理配置

摘要

由于docker被墙,各种镜像代理也逐渐不能用,因此要给docker配个代理。最简单的方法其实是把docker pull的流量代理到本地,因为本地一般都有梯子,这样不用为服务器装代理了。

方法

“docker pull” 命令是由 dockerd 守护进程执行。而 dockerd 守护进程是由 systemd 管理。因此,如果需要在执行 “docker pull” 命令时使用 HTTP/HTTPS 代理,需要通过 systemd 配置。

  • dockerd创建配置文件夹。
sudo mkdir -p /etc/systemd/system/docker.service.d
  • dockerd创建 HTTP/HTTPS 网络代理的配置文件,文件路径是/etc/systemd/system/docker.service.d/http-proxy.conf。并在该文件中添加相关环境变量。
[Service]
Environment="HTTP_PROXY=127.0.0.1:7890"
Environment="HTTPS_PROXY=127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
  • 刷新配置并重启docker服务。
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 最后通过ssh -R代理到本地
ssh -R 7890:127.0.0.1:7890 hz

参考

https://yeasy.gitbook.io/docker_practice/advanced_network/http_https_proxy