互联网技术 / 互联网资讯 · 2024年3月29日 0

Docker教程:开放外部访问的云计算核心技术

运行只能访问的注册表的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