2014-09-24 82 views
6

我需要一些关于设置'远程私有Docker注册表'的提示。设置远程私有Docker注册表

README.md Docker-Registry主要关注在同一主机上运行的私有注册表,并未指定其他机器如何远程访问它(或者可能太复杂以至于无法理解)。

到目前为止,我发现这些线程:

Docker: Issue with pulling from a private registry from another server (?仍然是一个开放的线程,没有提供对Github进一步讨论提供了有关代理提示解决办法,但怎么才能做到)

Create a remote private registry (也许最接近我在找什么,但我需要什么命令来访问从其他机器的注册表?)

How to use your own registry(同样,这重点是在同一主机上运行注册表。它提到了ru在端口443或80端口为其他机器访问,但需要更多细节!)

用尽线索,任何输入非常赞赏!

回答

5

我可以参照这个来建立一个远程专用注册表: Remote access to a private docker-registry

步骤:

  1. 在注册表中的主机上,运行docker run -p 5000:5000 registry
  2. 在客户端主机上,通过启动多克尔服务docker -d --insecure-registry 10.11.12.0:5000(用您自己的注册表ip替换10.11.12.0,并且您可能需要守护进程以便在shell关闭后继续运行。)

编辑:或者,您可以编辑Docker的init脚本(RHEL/CentOS的/ etc/sysconfig/docker,Ubuntu/Debian的/ var/lib/docker)。添加此行other_args="--insecure-registry 10.11.12.0:5000",然后执行service docker restart。这是推荐的方法,因为它将守护程序守护进程。

现在,尝试,如果它的工作原理:

  1. 在客户端,下载busybox的图像docker pull busybox
  2. 给它一个新的标签docker tag busybox 10.11.12.0:5000/busybox
  3. 推注册表docker push 10.11.12.0:5000/busybox
  4. 验证推docker search 10.11.12.0:5000/busybox
  5. 删除所有图像并将其从您的注册表中删除docker rmi busybox 10.11.12.0:5000:busyboxdocker pull 10.11.12.0:5000:busybox
  6. 运行docker images应该具有您从您的远程私人注册表中提取的图像。
+0

10.11.12.0:5000从哪里来? – Adrian 2015-07-27 20:55:41

+0

@Adrian,这只是一个虚拟IP地址。你应该使用你自己的IP地址。你可以在'eth0'中显示'ifconfig'和地址来找到它。 – 2015-07-28 21:40:02

2

我使用私人登记在接下来的方式:

  • 它FQDN:docker.mycompany.com
  • 所有这一切,我创建具有名称图片:docker.mycompany.com/image1,搬运工。我的公司。COM /图像2等

那毕竟是工作无缝地:

  • 推图像注册表:

    搬运工推docker.mycompany.com/image1

  • 拉和运行图像:

    码头运行docker.mycompany.com/image2

+0

是的,FQDN岩石。截至目前我正在尝试[Docker Registry UI](https://github.com/atc-/docker-registry-web)来管理图像(列表,删除等)。下一步是尝试[Nginx](https://www.youtube.com/watch?v=FJrs0Ar9asY)进行代理和身份验证。编辑:添加链接 – 2014-11-11 19:50:42