在公司里的计算机都是隔离环境,还好主管给开放了一个http的代理ip用于访问公网,只需要在浏览器中填写上此代理IP与端口即可摸鱼啦!
但此时我需要学习Docker,而没有公网的支持,我没法从dockerHub上拉取镜像,此时就需要给我的docker程序添加上代理使其能访问公网,在docker手册里是有添加的方法,不过为了方便我还是提取出来,以方便大家更容易找到方法:
- 在此路径创建此文件:/etc/systemd/system/docker.service.d/http-proxy.conf
- 在此文件中输入一下内容(其中的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”
- 刷新
- 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和端口是行的。