如何配置Docker容器代理?

Sin*_*rut 8 proxy docker

我是Docker的新手。我尝试为debian:jessie图像设置代理,但我没有成功。我点击此链接。我将所有标签都使用cat标记(例如:“ cat> proxy.sh”,因为未安装vi或其他编辑器),但是在apt-get update命令中存在有关我的代理的一些错误。

错误照片

在此处输入图片说明

我的代理人:http:// username:password@proxy2.domain.com

tha*_*tah 9

您可以在启动容器时设置代理环境变量,例如:

docker container run \
  -e HTTP_PROXY=http://username:password@proxy2.domain.com \
  -e HTTPS_PROXY=http://username:password@proxy2.domain.com \
  myimage
Run Code Online (Sandbox Code Playgroud)

如果希望在启动容器时自动使用代理服务器,则可以在Docker CLI配置文件(~/.docker/config.json)中配置默认代理服务器。您可以在用户指南的“ 网络”部分中找到有关此操作的说明。

例如:

{
  "proxies": {
    "default": {
      "httpProxy": "http://username:password@proxy2.domain.com",
      "httpsProxy": "http://username:password@proxy2.domain.com"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

要验证~/.docker/config.json配置是否有效,请启动一个容器并打印其env

docker container run --rm busybox env

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=220e4df13604
HTTP_PROXY=http://username:password@proxy2.domain.com
http_proxy=http://username:password@proxy2.domain.com
HTTPS_PROXY=http://username:password@proxy2.domain.com
https_proxy=http://username:password@proxy2.domain.com
HOME=/root
Run Code Online (Sandbox Code Playgroud)

  • 代理域名在哪里注册的?docker 可以访问它注册的 DNS 吗?如果您指定代理的 IP 地址而不是域名,会发生什么情况?“无法解析”表示 DNS 问题。 (2认同)

Geo*_*vei 5

您需要指示 apt 脚本通过容器内的代理进行连接

# echo 'Acquire::http::proxy "proxy:port/";' > /etc/apt/apt.conf.d/40proxy
Run Code Online (Sandbox Code Playgroud)

记住,这应该写在容器内

在运行 docker 的机器中,应该像人们之前在评论中所说的那样配置代理