我目前正在专用网络(已配置DNS,DHCP)上实现private Docker Registry server with nginx
configured to forward https
traffic securely to the running Docker Registry (i.e. docker-compose
) instance。
我的整个安装工作都按预期进行,但是必须create self-signed certificates,因为我不允许使用"Let's Encrypt"(硬性要求)。我已将.crt
文件部署到网络上所有Ubuntu主机上的/usr/local/share/ca-certificates
,并更新了证书存储(即通过sudo update-ca-certificates -f
)。
但是,即使证书是“受信任的”(从上述步骤开始),证书仍被注册为“自签名”,并且the only way I can get Docker Registry working fully is by creating a file,/etc/docker/daemon.json
具有以下内容(假设我的Docker Registry实例正在我的registry
域的lan
主机上运行):
{
"insecure-registries" : [ "registry.lan:5000" ]
}
这会导致某些功能中断(即,如果启用了“不安全的注册表”,则有些插件将无法工作)。
如何配置我的专用网络(即,假设大部分时间它甚至都没有连接到Internet),以便网络上的所有计算机“完全信任”证书(即,证书是“公共信任的”)在本地网络上的主机中)? 即我可以运行什么命令或可以调整配置文件?
This seems like a possible solution: create a CA plus server key on my private network.
谢谢。
答案 0 :(得分:0)
从注册表文档中:
Linux :在每个Docker上将
domain.crt
文件复制到/etc/docker/certs.d/myregistrydomain.com:5000/ca.crt
主办。您无需重启Docker。
因此,您需要将证书放在正确的位置。
来源:https://docs.docker.com/registry/insecure/#use-self-signed-certificates