|
运行只能访问的注册表的localhost用处有限。为了使外部主机可以访问您的注册表,您必须首先使用 TLS 保护它。 获得证书 这云计些示例假设如下: 您的注册表 URL 是https://myregistry.domain.com/. 您的 DNS、路由和防火墙设算核置允许通过端口 443 访问注册表主机。 您已从证书颁发机构 (CA) 获得证书。 如果您已经获得了中间证书,请参阅 使用中间证书。 1心技.创建一个certs目录。 $ mkdir -p certs 将.crt和.key文件从 CA 复制到certs目录中。以下步骤假定文术D件被命名domain.crt为 domain.key. 2.如果注册表当前正在运行,请停止它。 $ docker containeroc stop registry 3.重新启动注册表,指示它使用 TLS 证书。此命令将certs/目录绑定挂载到容器中/certs/,并设置环ke境变量,告诉容器在哪里可以找到domain.crt anddomain.key文件。注册表在默认 HTTPS 端口 443 上运行r教。 $ docker run -d \ --restart=always \ --name registry \ -v "$(pwd)"/certs:/c程:erts \ -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \ -e REGISTRY_HTTP_TLS_CERTIF注册ICATE=/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 $ d部访ocker pull myregistry.domain.com/my-ubuntu |
