为了构建一个特定的镜像,我需要创建一个隧道,并让docker使用这个隧道作为socks5代理(也是为了使用DNS代理)。
所以现在我有几个问题:
如何让docker使用主机上的代理?
如何让docker使用代理获取基础镜像?
如何让docker使用运行指令的代理?
如何让docker为ADD指令使用代理?
发布于 2020-05-04 18:41:06
由于我花了一整天的时间研究这个问题,下面是答案:
使用localhost:port不起作用。直到
这个
问题得到解决后,您需要使用docker0网络接口的IP地址(在我的示例中为172.17.0.1)。
这个答案也适用于问题3。只需将此内容(根据需要更改IP和端口)放入
(请注意,协议是socks5h)
{
"proxies":
{
"default":
{
"httpProxy": "socks5h://172.17.0.1:3128",
"httpsProxy": "socks5h://172.17.0.1:3128",
"noProxy": ""
}
}
}我不知道为什么,但是对于ADD指令,以前的设置不适用(名称不能通过代理解析)。我们需要将此内容放入
[Service]
Environment="HTTP_PROXY=socks5://172.17.0.1:3128/"然后
sudo systemctl daemon-reload
sudo systemctl restart docker另外,对于像这样的包管理器
为了能够在构建期间更新包,您需要像这样传递环境变量:
docker build --build-arg http_proxy=socks5://172.17.0.1:3128发布于 2021-02-18 15:08:26
使用localhost:port的工作方式是在"docker build ...“中添加"--network=host”选项。命令。
https://stackoverflow.com/questions/61590317
复制相似问题