Docker小记–代理篇

在公司里的计算机都是隔离环境,还好主管给开放了一个http的代理ip用于访问公网,只需要在浏览器中填写上此代理IP与端口即可摸鱼啦!

但此时我需要学习Docker,而没有公网的支持,我没法从dockerHub上拉取镜像,此时就需要给我的docker程序添加上代理使其能访问公网,在docker手册里是有添加的方法,不过为了方便我还是提取出来,以方便大家更容易找到方法:

  1. 在此路径创建此文件:/etc/systemd/system/docker.service.d/http-proxy.conf
  2. 在此文件中输入一下内容(其中的IP与端口需自行替换):
    • [Service]
    • Environment=”HTTP_PROXY=http://127.0.0.1:8118″
    • Environment=”HTTPS_PROXY=http://127.0.0.1:8118″
    • Environment=”NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp”
  3. 刷新
    • systemctl daemon-reload
    • systemctl restart docker

但此时还有一个问题,我从镜像运行的容器还不能联网更新系统,还需要给容器也设置上代理呀!设置的方法,需要在~/.docker/config.json中添加以下内容,当容器启动时,会添加到容器的环境变量中,这样容器中的 apt-get 就走上代理了。

{
 "proxies":{ 
   "default":{
     "httpProxy": "http://127.0.0.1:8118",
     "httpsProxy": "http://127.0.0.1:8118",
     "noProxy": "*.test.example.com,.example2.com,127.0.0.0/8"
   }
 }
}

是不是soeasy?!

不过有一点需要注意,容器运行时是桥接网络,它是与docker通信的ip,如果想让容器使用本机代理,可能会受防火墙影响,不确定不啊,因为我尝试的时候没成功,后来使用主管开放的那个IP和端口是行的。

Comment

您的邮箱地址不会被公开。 必填项已用 * 标注