运行只能访问的注册表的localhost用处有限。为了使外部主机可以访问您的注册表,您必须首先使用 TLS 保护它。
获得证书
这些示例假设如下:
您的注册表 URL 是https://myregistry.domain.com/.
您的 DNS、路由和防火墙设置允许通过端口 443 访问注册表主机。
您已从证书颁发机构 (CA) 获得证书。
如果您已经获得了中间证书,请参阅 使用中间证书。
1.创建一个certs目录。
$ mkdir -p certs
将.crt和.key文件从 CA 复制到certs目录中。以下步骤假定文件被命名domain.crt为 domain.key.
2.如果注册表当前正在运行,请停止它。
$ docker container stop registry
3.重新启动注册表,指示它使用 TLS 证书。此命令将certs/目录绑定挂载到容器中/certs/,并设置环境变量,告诉容器在哪里可以找到domain.crt anddomain.key文件。注册表在默认 HTTPS 端口 443 上运行。
$ docker run -d /
--restart=always /
--name registry /
-v "$(pwd)"/certs:/certs /
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 /
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt /
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key /
-p 443:443 /
registry:2
4.Docker 客户端现在可以使用其外部地址从您的注册表中提取和推送。以下命令演示了这一点:
$ docker pull ubuntu:16.04
$ docker tag ubuntu:16.04 myregistry.domain.com/my-ubuntu
$ docker push myregistry.domain.com/my-ubuntu
$ docker pull myregistry.domain.com/my-ubuntu
本文链接:http://www.28at.com/showinfo-119-2325-0.html云计算核心技术Docker教程:注册服务器开放外部访问
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com