我支持公司代理。我在图片中设置了HTTP_PROXY
,HTTPS_PROXY
和NO_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访问我的主机可以访问的端点?如何启用它?
答案 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