通过终端获取 Docker for mac 代理变量



我在代理后面使用 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。Proxycap/Redsocks 透明地将流量重定向到您拥有的指定代理,因此您不必再配置任何代理设置。

更新: 有一个用于 redsocks 的 docker 映像,以防您无法将其安装在主机上。https://hub.docker.com/r/ncarlier/redsocks/

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

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

如果在 GUI 中设置了这两个,它们将出现在输出的末尾附近。如果未设置,则不会设置,而在我的情况下,No Proxy: *.local, 169.254/16将显示。

据我所知:这是不可能的。

我得到的唯一想法是使用某种可iptable规则(我想mac中有类似的东西(将外部IP数据包重定向到代理。这意味着您的 docker 是干净的,无论您是否在代理后面,您只需激活/停用规则。

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

导出它们,也可以在脚本中使用右侧。

export http_proxy=$(docker info | grep 'Http Proxy' | cut -f2 -d:)
export https_proxy=$(docker info | grep 'Https Proxy' | cut -f2 -d:)

最新更新