实验室全代理网络环境下使用docker proxy

背景

实验室网络总是受限的,目前我所用的机子连接的路由并没有直接连接到网络,而是将所有的数据转发到某台主机上,这就造成了无法ping, 无法直接打开指定的tcp端口, 等等比较麻烦的网络问题。

Docker也是如此,据我观察,docker似乎在pull image时使用tcp端口,导致我虽然设置了docker的镜像,依旧出现time out的错误,无法跑通docker run hello-world示例。


docker无法连接网络

环境

  • linux版本

    Linux zhikang-desktop 4.15.0-29-generic #31~16.04.1-Ubuntu SMP Wed Jul 18 08:54:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    
  • docker 版本

    Docker version 17.03.2-ce, build f5ec1e2
    

    尝试过的解决方案

    官网上提供一种proxy方案,如下所示:

  • 新建~/.docker/config.json文件
  • 配置proxy

    {
    "proxies":
        {
            "default":
            {
                "httpProxy": "http://127.0.0.1:3001",
                "noProxy": "*.test.example.com,.example2.com"
            }
    }
    }
    

    显然,我尝试后没有作用。

work的方案

  1. 新建/etc/systemd/system/docker.service.d文件夹
  2. 创建/etc/systemd/system/docker.service.d/http-proxy.conf文件

    [Service]
    Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=https://[proxy-addr]:[proxy-port]/"
    


实际中的.conf文件

实际工作图片如下:


proxy.conf确实解决了问题

0%