docker无法访问主机可以访问的Intranet

时间:2018-05-10 19:58:36

标签: docker npm proxy npm-registry

我支持公司代理。我在图片中设置了HTTP_PROXYHTTPS_PROXYNO_PROXY。当我连接到网络时,我可以访问此Intranet上的私有npm注册表。我的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 个答案:

答案 0 :(得分:0)

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

示例:

SIGCHLD

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

答案 1 :(得分:0)

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

编辑daemon.json文件

sudo vim /etc/docker/daemon.json

文件应该看起来像这样

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

重新启动守护程序

sudo service docker restart

答案 2 :(得分:0)

我遇到了类似的问题,那是因为仍有一些撰写文件创建了一个docker网络

docker network ls

我删除了那个单薄的,并保留了Intranet访问权限

答案 3 :(得分:0)

您可以尝试以下操作: docker run --add-host XXX.net:192.168.115.7 -p 8080:8080 -d image_id