使用环境变量设置 Docker 代理

问题描述 投票:0回答:2

在公司代理背后工作时..

为什么 docker 无法从环境变量中导出代理特定值 (

http_proxy, https_proxy,...
).

即使环境变量中提到了代理 URL,通常在拉取镜像时也会遇到超时问题。

我必须在 /etc/systemd/system/docker.service.d 文件夹中或通过创建配置文件来设置值(

再次硬编码相同的值
)。

如果我们更改代理 URL,我们必须在不同的地方进行更改。或者有什么方法可以引用环境变量中的值?

我已经尝试过

docker run -e env_proxy_variable=proxy_url
但遇到了同样的超时问题。

docker proxy
2个回答
0
投票

考虑使用以下内容:

export HTTP_PROXY=http://xxx:port/
export HTTPS_PROXY=http://xxx:port/
export FTP_PROXY=http://xxx:port/

您可以在 /etc/default/docker 文件中对这些变量进行硬编码,以便在 docker 启动时导出它们。


0
投票

您可以通过输入 $(name_of_var) 检查环境变量是否已导出。例如,跑步后

docker run --env HTTP_PROXY="123.45.21.32" -it ubuntu_latest /bin/bash

类型

echo $HTTP_PROXY

您的 DNS 服务器可能未配置。尝试一下

cat /etc/resolv.conf

如果您看到类似的内容:

nameserver:8.8.8.8

那么很可能 DNS 服务器在防火墙后面无法访问。您可以将 dns 服务器地址与

docker run
命令一起传递,如下所示:

docker run --env HTTP_PROXY="123.45.21.32" --dns=172.10.18.0 -it ubuntu_latest /bin/bash

© www.soinside.com 2019 - 2024. All rights reserved.