docker机器在公司代理之后

我正在尝试使用docker-machine在私有云(Openstack)上创build一个位于公司http代理之后的实例。

是否有可能告诉docker机使用代理或我需要有一个已经预先configurationhttp_proxy envvariables的一瞥图像?

对于当前的docker机器版本,我找不到像boot2docker中更好的方法( Docker / Boot2Docker:为OS X上的docker设置HTTP / HTTPS代理 )

如果您在docker机器上的/ var / lib / boot2docker / profile中手动设置代理,重新启动代理后,代理设置将被自动删除。

所以我必须创build一个--engine-env机器,其中包含--engine-env代理

 docker-machine create -d virtualbox \ --engine-env HTTP_PROXY=http://example.com:8080 \ --engine-env HTTPS_PROXY=https://example.com:8080 \ --engine-env NO_PROXY=example2.com \ proxybox 

笔记:

这是一个两年前的答案,docker中发生了很多变化,所以如果你仍然不能在代理的后面工作,请阅读@ Senri的答案。

参考:

创builddocker机器

如前所述,您可以在此处编辑文件

 $HOME\.docker\machine\machines\default\config.json 

并设置HTTP_PROXY,HTTPS_PROXY和NO_PROXYvariables(或删除它们):

  "HostOptions": { "Driver": "", ... "EngineOptions": { ... "Env": [ "HTTP_PROXY=http://10.121.8.110:8080", "HTTPS_PROXY=http://10.121.8.110:8080", "NO_PROXY=192.168.23.4" ], 

文件编辑完成后,您只需执行:

 docker-machine provision 

现有的docker机configuration可以修改为代理添加环境。 可以编辑$ HOME / .docker / machine / machines //。config.json中的config.json。

在config.json中添加“HTTP_PROXY = http://example.com:8080 ”到Env。 重新启动机器,然后你就完成了。

如果您已经创build了机器(VM),则可以像这样configuration代理:

 1- SSH into the docker dev host: docker-machine ssh dev 2- Add the following lines to /var/lib/boot2docker/profile (this file is read-only, use sudo) export HTTP_PROXY=http://<proxy>:<port> export HTTPS_PROXY=http://<proxy>:<port> 3- Exit the ssh session and restart the docker machine: docker-machine restart dev 

资源