一直学一直嗨,一直嗨一直学

Docker实践(7) – 设置本地私有库registry

文章目录

[隐藏]

  • 问题
  • 方法
  • 讨论

你看到了Docker官方有一个服务,人们可以公开分享他们的镜像(你可以付费设置为私有)。不过有些理由使你不想通过Hub分享镜像 – 一些企业喜欢把服务尽可能的留在内部,或者可能是你的镜像太大了,通过互联网传输会太慢,或者可能你只是在做试验想暂时保持私有,或者不想付费购买私有权限。不管是什么样的原因,有一个简单的解决方案。

问题

你想要一个本地托管你的镜像的方法。

方法

在你本地网络设置一个registry服务器。

讨论

要运行registry,在一个空间充足的机器执行如下命令:

  1. $ docker run -d -p 5000:5000 -v $HOME/registry:/var/lib/registry registry:2

此命令设置了docker主机的5000端口作为registry的服务端口并设置容器的/var/lib/registry为registry的存储目录,也就是registry在容器中存储文件的默认目录。
在需要访问registry服务器的docker机器上,给守护端添加如下选项(HOSTNAME是registry服务器的主机名或IP地址):–insecure-registry HOSTNAME.
你现在能执行docker push HOSTNAME:5000/image:tag命令把镜像推送到registry服务器。
如你所见,配置一个镜像存储在$HOME/registry的本地registry只用到了最基本的配置级别,很简单吧。如果你想扩大registry的存储规模和使服务更健壮,可以查看支持的存储驱动(https://github.com/docker/distribution/blob/v2.2.1/docs/storagedrivers.md),如存储到Amazon S3。
你可能想了解关于–insecure-registry的选项。为什么帮助用户保持服务安全性,Docker只允许你从具有签名HTTPS证书的registrys拉取镜像。我们关闭此安全选项是因为我们认为本地网络是安全的。

Docker实践(7) – 设置本地私有库registry