一尘不染

如何获得对私有docker-registry的远程访问?

docker

我正在尝试使用从https://github.com/docker/docker-
registry拍摄的图像来设置私有Docker注册表

只需运行:
docker run -p 5000:5000 registry

我只能从本地主机从该存储库拉入/推送到该存储库,但是如果我尝试从另一台计算机(使用同一LAN上的私有地址)访问它,则会失败并显示错误消息:

*2014/11/03 09:49:04 Error: Invalid registry endpoint https ://10.0.0.26:5000/v1/': 
Get https:// 10.0.0.26:5000/v1/_ping: Forbidden. If this private 
registry supports only HTTP or HTTPS with an unknown CA certificate,
please add `--insecure-registry 10.0.0.26:5000` to the daemon's 
arguments. In the case of HTTPS, if you have access to the registry's
CA certificate, no need for the flag; simply place the CA certificate 
at /etc/docker/certs.d/10.0.0.26:5000/ca.crt*

是什么驱使我疯狂的是,我可以用成功地访问它: curl 10.0.0.26:5000 和/或curl 10.0.0.26:5000/v1/search

我也不明白我应该在哪里以及如何通过--insecure-registry国旗。


阅读 312

收藏
2020-06-17

共1个答案

一尘不染

好-经过一天的挖掘,我找到了解决方案。

对于1.12.1以下的docker:

事实证明,新的客户端版本拒绝使用没有SSL的私有注册表。

要解决此问题,客户端计算机上的守护程序应使用不安全标志启动:

只需输入:

sudo service docker stop # to stop the service

然后

sudo docker -d --insecure-registry 10.0.0.26:5000

(将替换为10.0.0.26您自己的IP地址)。

我希望码头工人将这个选项添加到拉/推命令行中…

编辑-经常进行-您可以将标志添加到DOCKER_OPTS/ etc / default / docker …中的env变量,然后sudo service docker restart

再次编辑-似乎是docker家伙在上面-
很快就会有一个修复程序:https :
//github.com/docker/docker/pull/8935

对于docker 1.12.1:

请遵循以下vikas027的答案(适用于centos)

2020-06-17