设置远程私有Docker注册表

How*_*Lee 7 docker docker-registry

我需要一些关于设置"远程私有Docker注册表"的技巧.

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

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

Docker:从另一台服务器中提取私有注册表的问题 (仍然是一个开放的线程,没有提供解决方案.关于Github的进一步讨论给出了代理的提示,但是它是如何工作的?)

创建一个远程私有注册表 (也许最接近我正在寻找的,但是从其他机器访问注册表需要什么命令?)

如何使用自己的注册表(同样,这侧重于在同一主机上运行注册表.它确实提到在端口443或80上运行以供其他机器访问,但需要更多细节!)

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

How*_*Lee 7

我可以通过参考以下内容来设置远程私有注册表: 远程访问私有docker-registry

脚步:

  1. 在注册表主机上,运行 docker run -p 5000:5000 registry
  2. 在客户端主机上,启动Docker服务docker -d --insecure-registry 10.11.12.0:5000(用你自己的注册表ip替换10.11.12.0,你可能想要守护进程,以便它在shell关闭后继续运行.)

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

现在,尝试它是否有效:

  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:busybox docker pull 10.11.12.0:5000:busybox
  6. 运行docker images应该具有您从您自己的远程私人注册表中提取的图像.