【问题标题】:Docker build uisng a proxy from host system使用来自主机系统的代理构建 Docker
【发布时间】:2017-11-26 03:47:42
【问题描述】:

我想为 docker build 使用代理。我检查了这样的解决方案:

sudo docker build -t Cron/ubuntu \
            --build-arg http_proxy="http://myproxy.example.com:8080" \
            --build-arg https_proxy="https://myproxy.example.com:8080" \

但在我的情况下,代理 ip 不是互联网地址,而是来自主机系统的一些 ip,如下所示:0.0.0.0:8118

我认为当我使用--buid-arg 构建映像并且dockerfile 运行到apt-get 之类的东西时,容器将尝试使用来自docker 系统而不是主机系统的0.0.0.0:8118。而且由于我没有像主机系统那样为docker系统配置该ip,因此代理将无效。

所以我的问题是,如何从主机系统运行 docker build uisng 代理?有什么方法可以将 ip 从主机映射到 docker 容器?

【问题讨论】:

  • 0.0.0.0 不是一个有效的实际地址,它只是告诉服务器接受任何网络接口上的任何地址的连接。您必须知道 Docker 内部伪网络上服务器的真实内部 IP 地址并将其传入。

标签: linux ubuntu docker proxy


【解决方案1】:

在 ~/.docker/config.json 文件中创建一个文件,如下所示:

{
  "proxies":{
    "httpProxy":"http://proxy_url:proxy_port",
    "httpsProxy":"https://proxy_url:proxy_port",
    "ftpProxy":"ftp://proxy_url:proxy_port"
  }
}

然后像这样调用docker:

sudo docker build -t Cron/ubuntu --build-arg http_proxy --build-arg https_proxy --build-arg ftp_proxy

此功能已在此 PR 中实现: https://github.com/moby/moby/pull/32966

任何使这个用户体验更好的想法请在这里贡献: https://github.com/moby/moby/issues/30323

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 2016-12-25
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多