0

我在我的服务器中创建了一个本地 docker 存储库。
当我尝试将图像推入其中时,出现错误。
我需要一个 HTTPS 连接。
如何为我自己的 docker 注册表获取 HTTPS?

操作系统: ubuntu 16.x
Docker 版本: 18.06.1-ce,构建 e68fc7a
已经尝试:
将以下行 添加到 /etc/docker/daemon.json 中,

{ "insecure-registries" : ["myregistrydomain.com:5000"] }

预期:我应该能够将图像推送和拉取到我自己的包含 docker 注册表的服务器中

4

2 回答 2

1

为了避免将您的注册表暴露在更广泛的互联网上,同时仍然能够从中提取图像,您可以:

  1. 在您的开发机器上运行一个本地注册表,您将图像推送到该注册表
  2. 使用反向隧道 ssh 到您的服务器:

    ssh -R 5000:localhost:5000 myhost

    (监听远程机器的 5000 端口(-R 5000)并通过隧道返回localhost:5000本地机器)

  3. 现在,myhost你可以docker pull localhost:5000/someImage,但它实际上是通过加密隧道无缝连接回你的开发机器上的注册表。

于 2019-02-13T13:14:52.877 回答
0

您可以拥有一个本地不安全的注册表。为此,您需要在 /etc/docker/daemon.json 中添加一个异常,这样

{
  "insecure-registries" : ["myregistrydomain.com:5000"]
 }

相同的链接显示了如何使用自签名证书。

最终,使用实际证书只是更进一步,但您可能不需要用于开发目的。

编辑
之后你需要重新启动你的守护进程:

service docker restart 
于 2019-02-13T10:58:52.077 回答