之前已经讲过如何设置Docker守护进程如何设置网络代理,那么如何设置运行的Docker容器的网络代理呢?

设置环境变量

设置容器环境变量,这也是最直接的一种方式。启动容器时,通过设置–env的flag,将环境变量传入容器。

变量名 Dockerfile示例 Docker run示例
HTTP_PROXY ENV HTTP_PROXY “http://127.0.0.1:3001” –env HTTP_PROXY=“http://127.0.0.1:3001”
HTTPS_PROXY ENV HTTPS_PROXY “https://127.0.0.1:3001” –env HTTPS_PROXY=“https://127.0.0.1:3001”
FTP_PROXY ENV FTP_PROXY “ftp://127.0.0.1:3001” –env FTP_PROXY=“ftp://127.0.0.1:3001”
NO_PROXY ENV NO_PROXY “*.test.example.com,.example2.com” –env NO_PROXY="*.test.example.com,.example2.com"

这种方式的优点就是直接,但缺点就是每次启动容器,都需要显示的设置,那么编译一些项目就会遇到麻烦。比如kubevirt项目,会在代码中启动容器下载go项目,需要用到代理,那就必须手动找到启动容器的位置,显示加上以上的环境变量,增加了很多工作量。为了解决这种情况,在Docker 17.07以上,可以使用配置Docker客户端的方式。

配置Docker客户端

前置条件:Docker 17.07以上。
  在启动docker用户的Home目录,创建~/.docker/config.json文件,增加http_proxy、https_proxy、ftp_proxy等的设置。当然,也可以同时配置多个代理服务器。
  对于不想使用no_proxy的路径,也可以增加no_proxy的配置,no_proxy的内容用逗号分隔,而且支持通配符*。
  示例:

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

启动容器,即可看到容器内会被自动加入代理。

Docker容器网络代理设置相关推荐

  1. docker 网络代理设置

    为什么需要设置代理 在运行docker run 时,首先会检查当前环境是否有对应的镜像,若没有将去docker hub上下载.由于国内长城,基本上不可能直接访问到国外的docker hub. 如下运行 ...

  2. 手工模拟实现 Docker 容器网络!

    大家好,我是飞哥! 如今服务器虚拟化技术已经发展到了深水区.现在业界已经有很多公司都迁移到容器上了.我们的开发写出来的代码大概率是要运行在容器上的.因此深刻理解容器网络的工作原理非常的重要.只有这样将 ...

  3. Docker容器网络解析

    Docker 容器网络的发展历史 在 Dokcer 发布之初,Docker 是将网络.管理.安全等集成在一起的,其中网络模块可以为容器提供桥接网络.主机网络等简单的网络功能. 从 1.7 版本开始,D ...

  4. Docker容器网络

    Docker的技术依赖于Linux内核的虚拟化技术的发展,Docker使用到的网络技术有Network Namespace.Veth设备对.Iptables/Netfilter.网桥.路由等.接下来, ...

  5. docker容器网络及其配置

    docker容器网络及其配置 文章目录 docker容器网络及其配置 虚拟化网络 单主机与多主机的Docker网络 单节点容器间通信 不同节点容器间通信 Docker网络驱动 选择Docker网络驱动 ...

  6. Docker容器网络实例管理

    Docker容器网络实例管理 Linux内核实现名称空间的创建 ip netns命令 可以借助ip netns命令来完成对 Network Namespace 的各种操作.ip netns命令来自于i ...

  7. 共享内存简介及docker容器的shm设置与修改

    共享内存简介及docker容器的shm设置与修改 共享内存简介 共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存.由于多个CPU需要快 ...

  8. 解锁TrueNAS SCALE 三方docker容器网络访问限制,默认是关闭的;并添加Portainer-CE容器webGUI管理器

    解锁TrueNAS SCALE 三方docker容器网络访问限制,默认是关闭的:并添加Portainer-CE容器webGUI管理器 本教程环境版本:TrueNAS-SCALE-21.06-BETA. ...

  9. Kubernetes Docker 容器网络终极之战(十四)

    与 Docker 默认的网络模型不同,Kubernetes 形成了一套自己的网络模型,该网络模型更加适应传统的网络模式,应用能够平滑的从非容器环境迁移到 Kubernetes 环境中. 自从 Dock ...

最新文章

  1. 一个很奇怪的 OpenCV出错:resize的坑
  2. SQLServer2000数据库特有的1433端口号
  3. 高人对libsvm的经典总结(全面至极)
  4. iOS开发篇——赋值语句介绍(C++)
  5. mysql下载是port报错_mysql group replication添加复制节点报错
  6. mysql中如何将几个没有关系的结果集放在一起
  7. prepareStatament和Statement和callableStatement的区别
  8. js模拟下雨js特效代码
  9. html5播放器视频抓取,分享10款最棒的免费HTML5视频播放器
  10. c#利用API读取微信数据
  11. Quartz分布式定时任务
  12. Zabbix拓扑图与聚合图形
  13. android中接口的作用是什么意思,Type-C接口有什么好处?和安卓micro USB接口有什么区别...
  14. 软件项目量化管理目标举例
  15. 指数族分布(2)——对数配分函数和MLE与充分统计量
  16. waylandweston
  17. 数仓建模—数仓架构发展史(02)
  18. 七个初学者必下载的Python编程器
  19. 新郑计算机培训机构排名前十,新郑美术培训中心排名
  20. 初识TradingView脚本语言PineScrpt 5

热门文章

  1. 神经性脚臭案例整理(一)
  2. 华为服务器 维护手册,华为常用维护手册.doc
  3. 实战 | flink sql 实时 TopN
  4. Linux开发工具--(编辑器,编译器,调试器)
  5. Pandas返回时间戳的差,以秒为单位
  6. 多传感器融合定位十四-基于图优化的定位方法
  7. java swing 跳转窗口_java swing 怎么实现点击按钮或者某个组件,跳转到另一个页面或者窗体?...
  8. 算法09——patA1033 加油站问题(贪心)
  9. eclipse java 测试_测试:LR中使用Eclipse来进行Java程序的测试方法
  10. 如何免费下载的全球的矢量边界(WGS84)