局域网内部署 Docker Registry

前端之家收集整理的这篇文章主要介绍了局域网内部署 Docker Registry前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

自动化操作的过程。同时也可以缓解带宽不足的问题,真是一举多得。本文将从创建单机的 Docker Registry 开始,逐步完成局域网内可用的 Docker Registry 的创建,并重点解释如何使用 IP 地址访问 Registry 的方法

$ docker run -d -p : --restart=always ---v ``/registry:/var/lib/

/myubuntu:

40370acd5b.png" alt="">

名称不一样而已。

$ docker push localhost:/myubuntu:

显示 push 操作成功了,那再看看文件系统发生了什么变化:

删除掉:

$ docker rmi localhost:/myubuntu:

$ docker pull localhost:/myubuntu:

生成一个自签名的就足够了。但这也存在一个缺点,就是需要在作为客户端的 docker daemon 中安装这个根证书,本文的稍后部分会介绍这一步骤。

生成秘钥和自签名的证书:

-newkey rsa: -nodes --keyout dcerts/-x509 -days -out dcerts/domain.crt

生成证书时,openssl 要求我们输入相关的信息。比如地域和公司、部门的信息。比较重要的是 Common Name,如果你是要为某个域名生成证书,那么这里就应该是你的域名。我们使用的是 IP 地址,所以我就想当然的把 IP 地址放在了这里。很遗憾的是这并不正确!如果拿此时生成的证书去配置 Docker Registry,我们将无法完成 pull/push 操作。配置的 Registry 根本无法在局域网中使用。名称时就会碰到。解决方法也很简单,就是在生成证书的配置文件中指定 subjectAltName 。打开文件 /etc/ssl/openssl.cnf,在 [v3_ca] 节点添加配置项:

退出,然后重新执行上面生成证书的命令。

$ docker run -d -p :--restart=---v ``/dstorage:/var/lib/-v ``/dcerts:/-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/-e REGISTRY_HTTP_TLS_KEY=/certs/

文件和证书文件

快速、方便和省钱,我们没有去购买商业版的证书。这种方式的弊端是:必须把我们生成的根证书安装到每一个需要访问 Registry 服务器的客户端上。具体做法如下:生成的证书文件 dcerts/domain.crt 复制到需要访问 Registry 服务器的机器上。放到目录 /etc/docker/certs.d/10.32.2.140:5000/ 中,并重命名为 ca.crt。当然这个目录需要你自己创建。最后重新启动 docker 服务:

$ systemctl restart docker.service

文件存储的状态:

403f27a.png" alt="">

文件系统中了。

猜你在找的Docker相关文章