0

我通过以下方式在 OSX 上的 docker 1.13 swarm 中的本地托管 docker-machine VM 中运行 docker 注册表服务:

docker service create --name registry --with-registry-auth --publish
5000:5000 registry:2

该服务正在运行,我可以在 swarm 管理器上推送/拉取图像,但是当我尝试使用端口 5000 从托管 swarm VM 的机器将图像推送到服务时:

Get https://<IP of swarm manager>:5000/v1/_ping: http: server gave HTTP response to HTTPS client

有谁知道如何从 swarm 外部安全地访问 docker 注册表服务?可能是一个常见问题解答,但我没有在 docker 网站上找到一篇文章来解决它。它们似乎都在处理容器 TLS 设置或从 swarm 中访问服务器(这相当不错)。

谢谢!

4

1 回答 1

1

有关保护注册表套接字的文档涉及 TLS 设置,因为这正是您需要配置的内容。注册表文档对此进行了高层次的讨论。为 docker 套接字创建 TLS CA、密钥和证书的相同步骤可用于注册表套接字,并记录在 docker 的站点上

请注意,如果您从自己的 CA 生成自己的证书,则需要信任您的 CA。有多种方法可以仅针对 docker 执行此操作,但更简单(并且可能不太安全)的解决方案是将其添加到主机上的根 CA 列表中。此过程因 Linux 发行版而异。

于 2017-01-29T20:27:31.527 回答