隧道或SSL禁止-从私有注册表中提取docker映像
我已经在我的电脑上设置了一个专用Docker注册表,如果我使用以下命令,我可以将图像拉入并推送到它,然后再拉回来: docker pull本地主机:5000/新 但是,如果我用我的IP地址替换localhost,它就不起作用了隧道或SSL禁止-从私有注册表中提取docker映像,docker,Docker,我已经在我的电脑上设置了一个专用Docker注册表,如果我使用以下命令,我可以将图像拉入并推送到它,然后再拉回来: docker pull本地主机:5000/新 但是,如果我用我的IP地址替换localhost,它就不起作用了 $ docker pull 10.118.56.140:5000/new_buntu Using default tag: latest Error response from daemon: Get https://10.118.56.140:5000/v2/: Tun
$ docker pull 10.118.56.140:5000/new_buntu
Using default tag: latest
Error response from daemon: Get https://10.118.56.140:5000/v2/: Tunnel or SSL Forbidden
现在一个有趣的观察是,如果我想看到docker注册表中的图像列表,我会访问:
http://localhost:5000/v2/_catalog
这是一个HTTP URL。但是,正如在输出中所看到的,当我尝试使用我的IP地址提取图像时,它会尝试通过HTTPS进行连接。我想知道docker是否有某种设置,如果没有从localhost提取图像,它将强制SSL。如果是,我该如何阻止它
我尝试将http放入pull命令中,但没有成功:
$ docker pull http://10.118.56.140:5000/new_buntu
invalid reference format
我希望我网络上的所有人都能从我的注册表中获取图像。我该怎么做呢?我花了一点时间来探索这个问题,但最终我找到了答案。Docker似乎在从远程机器提取映像时强制使用SSL。为了防止这种行为,我们需要特别告诉docker,我们试图连接到的注册表未实现SSL。按照以下步骤为其配置docker映像: 右键单击图标栏中的docker图标。 点击“设置”。 转到“设置”面板中的“守护进程”选项卡。 在“不安全注册表”部分添加注册表的IP地址和端口号。10.118.56.140:5000在我的情况下 打开浏览器并访问http://:/v2/\u目录以查看所有可用图像的列表。就我而言 发出以下命令以拖动图像 docker pull IP地址:端口号/图像名 例如:
docker pull 10.118.56.140:5000/new_buntu
你能提供一些关于如何设置/运行本地注册表的更多信息吗?@tgogos:我只是简单地提取了图像并启动了它的容器。没什么特别的。好的,你发布了哪些端口?你能提供你的docker run。。。命令?5000。默认值。如果我没有记错的话,老实说,我不确定,我发布了docker run-d-p 5000:5000-name registry:2,从我读到的内容来看,您可能还需要发布https的443端口,并获得证书。。。