通过终端获取用于mac代理变量的Docker

我在代理之后使用Docker for mac。 我在Docker GUI中的“代理” - >“手动代理配置”下设置了代理配置。 这使我可以从代理后面的存储库下载Docker镜像。

接下来,我设置了http_proxyhttps_proxy环境变量,并在docker-compose.yml中使用它们将它们传递给构建:

services:
  app:
    build:
      context: .
      args:
        http_proxy: $http_proxy
        https_proxy: $https_proxy

我如何获取通过终端中的Docker GUI设置的变量,因此我不必将它们设置两次? 是否有我可以使用的特定于Docker的环境变量?


如果我正确理解你想要的,那么你只需要阅读docker info给出的内容:

❯ docker info | grep Proxy
Http Proxy: http://localhost:3128
Https Proxy: http://localhost:3128

如果这两个设置在GUI中,它们将出现在输出结尾附近。 如果他们没有设置,他们将不会,而在我的情况下,将不会出现No Proxy: *.local, 169.254/16


安装proxycap或redsocks,并免除所有工具令人讨厌的代理错误,而不仅仅是Docker。 Proxycap / Redsocks将流量透明地重定向到您拥有的指定代理,因此您不再配置任何代理设置。

更新 :如果您无法将其安装在主机上,则有一个用于红袜子的码头图像。 https://hub.docker.com/r/ncarlier/redsocks/


我的最佳知识是:这是不可能的。

我得到的唯一想法是使用某种iptable规则(我猜mac中有类似的东西),将外部ip包重定向到代理。 这意味着你的码头是干净的,如果你是在代理之后,你只需激活/停用规则。

这并不容易,但它是可行的。

链接地址: http://www.djcxy.com/p/96977.html

上一篇: Getting Docker for mac proxy variables through terminal

下一篇: How do I run a Play Framework 2.1 project in IntelliJ?