Docker 构建错误:“无法连接到服务器”(在代理后面)

Leo*_* AB 6 dns proxy docker alpine-linux

上下文: 操作系统:Windows 10 Pro;Docker 版本:18.09.0(构建 4d60db4);在企业代理的背后,使用CNTLM来解决这个问题。(目前正在拉/运行图像工作正常)

问题: 我试图构建以下 Dockerfile:

FROM alpine:3.5
RUN apk add --update \
    python3
RUN pip3 install bottle
EXPOSE 8000
COPY main.py /main.py
CMD python3 /main.py
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

Sending build context to Docker daemon  11.26kB
Step 1/6 : FROM alpine:3.5
 ---> dc496f71dbb5
Step 2/6 : RUN apk add --update     python3
 ---> Running in 7f5099b20192
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.5/main: could not connect to server (check repositories file)
WARNING: Ignoring APKINDEX.c51f8f92.tar.gz: No such file or directory
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.5/community: could not connect to server (check repositories file)
WARNING: Ignoring APKINDEX.d09172fd.tar.gz: No such file or directory
ERROR: unsatisfiable constraints:
  python3 (missing):
    required by: world[python3]
The command '/bin/sh -c apk add --update     python3' returned a non-zero code: 1
Run Code Online (Sandbox Code Playgroud)

我能够从浏览器访问 URL,因此服务器本身没有问题。

我怀疑这与代理没有传播到容器有关,如本问题所述,因为我在运行时也没有得到 http_proxy 行docker run alpine env。但是,在将代理输入配置文件后,它终于出现了。然而问题仍然存在。

我也尝试按照此处的说明更改DNS ,但问题仍未解决。

Leo*_* AB 8

我终于设法解决了这个问题,罪魁祸首是我在 CNTLM 中的设置。有关背景故事,请查看此帖子。

此问题的根本原因是 .docker 容器无法从 VM 内部访问 Internet,因为CNTLM.ini.

通常 CNTLM127.0.0.1:3128默认侦听转发代理。我遵循默认设置,因此将 Docker 上的代理设置(对于守护进程 -通过 GUI,对于容器 -通过config.json)也设置到该地址和端口中。事实证明,这个“本地主机”不适用于 docker 所在的虚拟机,因为虚拟机有自己的 localhost。长话短说,解决方案是10.0.75.1:3128在以下所有位置将该地址更改为 dockerNAT IP 地址( ):

  • CNTLM.ini(Listen在线上。其实如果我们把CNTLM也用在其他用途​​上,也可以提供多Listen条线)
  • Docker 守护进程的代理(通过 Docker 设置 GUI)
  • Docker 容器config.json(通常在 中C:\Users\<username>\.docker),通过添加以下几行:

    "proxies":
     {
       "default":
       {
         "httpProxy": "http://10.0.75.1:3128",
         "httpsProxy": "http://10.0.75.1:3128",
         "noProxy": <your no_proxy>
       }
     }
    
    Run Code Online (Sandbox Code Playgroud)

还检查这些相关的帖子:


归档时间:

查看次数:

3542 次

最近记录:

5 年,6 月 前