Docker build_image 无法访问我的本地 Maven 存储库

Docker build_image cannot reach my local maven repo

嗨 运行 docker:引擎:17.12.0-ce Mac 10.12.6

我正在使用 build_image 功能。

FROM openjdk:8-jdk-alpine AS BUILD_IMAGE

ENV APP_ENVIROMENT=dev
ENV APP_RUNTIME=docker
ENV BUILD_HOME=/build

COPY . $BUILD_HOME
WORKDIR $BUILD_HOME
RUN wget http://xxx.xxx.xxx.xxx:8081

出现以下错误。我很确定可以从我的 laptop/wifi 和 VPN

访问服务器
...
removing intermediate container e5519d15a106
 ---> b3a3dd24343f
Step 7/16 : RUN wget http://xxx.xxx.xxx.xxx:8081
 ---> Running in 49fdabef0923
Connecting to xxx.xxx.xxx.xxx:8081 (xxx.xxx.xxx.xxx:8081)
wget: can't connect to remote host (xxx.xxx.xxx.xxx): Host is unreachable

似乎是 DNS 问题,我的 /etc/resolv.conf 非常好,而且我很确定机器可以访问。看起来我网络上的一些机器可以访问,而另一些则不能访问。

我可以用

测试
RUN ping xxx.xxx.xxx.xxx

结果:

PING xxxxxx.mydomain.com (xxx.xxx.xxx.xxx): 56 data bytes

--- xxxxxx.mydomain.com ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
The command '/bin/sh -c ping -c 4 xxxxxx.mydomain.com' returned a non-zero code: 1

更新。添加名称以明确。

FROM openjdk:8-jdk-alpine AS BUILD_IMAGE

ENV APP_ENVIROMENT=dev
ENV APP_RUNTIME=docker
ENV BUILD_HOME=/build

COPY . $BUILD_HOME
WORKDIR $BUILD_HOME
RUN wget http://myserver.domain.net:8081

docker 构建的结果:

 ---> 76c263fb4490
Step 7/15 : RUN wget http://myserver.domain.net:8081
 ---> Running in ef2b13c77b91
Connecting to myserver.domain.net:8081 (10.0.0.1:8081) <-- I.P redacted to protect the inocent. :p
wget: can't connect to remote host (10.0.0.1): Host is unreachable
The command '/bin/sh -c wget http://myserver.domain.net:8081' returned a non-zero code: 1

从我的控制台...

wget http://myserver.domain.net:8081                                                                                      
--2018-02-15 10:36:44--  http://myserver.domain.net:8081/
Resolving myserver.domain.net... 10.0.0.1
Connecting to myserver.domain.net|10.0.0.1|:8081... connected.
HTTP request sent, awaiting response... 200 OK

很明显,您可以看到 docker 正在解析 I.P 并且我的笔记本电脑可以连接。

问题已解决:https://success.docker.com/article/How_do_I_configure_the_default_bridge_(docker0)_network_for_Docker_Engine_to_a_different_subnet

docker 网桥与我的网络冲突。我们需要在 daemon.json

中输入
{
    "bip": "172.26.0.1/16"
}

您可以使用任何适合您的值。