1

我支持公司代理。我在图像中设置了HTTP_PROXYHTTPS_PROXY和。NO_PROXY当我连接到网络时,我可以访问npm此 Intranet 上的私有注册表。我的 docker 映像无法访问此注册表。

在主机(mac)上,我可以运行:

curl https://<registry>/nodejs/content/groups/npm/lodash

我得到了包裹的 JSON。

在 docker 映像上,我运行相同的命令并得到以下信息:

curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

当我npm install设置注册表时,它也会返回相同的问题。

为什么 docker 不能访问我的主机可以访问的同一端点?我怎样才能启用它?

4

3 回答 3

1

尝试使用主机的网络。如果您能够从本地访问该 URL,那么它应该可以工作。您只需将--network host参数添加到您的构建/运行命令中。

例子:

$ docker build <all the other args> --network host .
$ docker run <all the other args> --network host .

Docker 默认创建一个桥接网络,但您可以通过 --network host arg 强制它使用您的本地网络。

于 2018-05-16T18:17:44.413 回答
0

我遇到了类似的问题,这是由一些撰写文件创建的 docker 网络仍然存在

docker network ls

我删除了危险的并保留了内网访问

于 2019-06-30T04:22:40.327 回答
0

有点晚了,但它可能会帮助某人。我遇到了同样的问题,我的解决方案是将 docker daemon 配置为使用我的 Intranet DNS

编辑daemon.json文件

sudo vim /etc/docker/daemon.json

该文件应该看起来像这样

{
  "dns": ["ip-here", "ip-here"]
}

重启守护进程

sudo service docker restart
于 2018-11-20T07:13:51.747 回答