如何设置私有安全的docker-registry。
我已通过helm
安装现在如何确保它的安全性(TLS证书),以便可以从docker和kubernetes部署中推入注册表?
我看到有一个头盔配置:
tlsSecretName Name of secret for TLS certs
更新-当前状态 : 我能够使用cert-manager并使用TLS进行安装:
helm install stable/docker-registry --set tlsSecretName=example-com-tls
我的证书并不强-但我不清楚以下内容:
1。
我现在可以创建一个Ingress(带有证书的秘密),该Ingress仅接受带有该证书的传入请求吗?我明天会看@xzesstence的建议链接
2。
我想我需要告诉docker push
在哪里找到证书?
也许(我明天会尝试):https://docs.docker.com/engine/security/certificates/
答案 0 :(得分:1)
查看官方Docker教程 https://docs.docker.com/registry/deploying/
尤其是重点 获取证书
因此,总的来说,您需要获取证书并将其放置在/ certs中(或更改以下docker run命令-v / cert的文件夹安装)。 还要检查证书名称,重命名为domain.crt或在docker run命令中更改文件名
然后运行
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
如果您没有证书,则可以使用letsencrypt https://letsencrypt.org/
也许您想使用letencrypt证书签出此开始脚本。 (从我这边开始未经测试) 这样做的好处是,您集成了letencrypt服务,可以自动更新许可证 https://gist.github.com/PieterScheffers/63e4c2fd5553af8a35101b5e868a811e
编辑: 由于您是在Kubernetes集群上使用Docker的,因此请仔细阅读本教程 https://medium.com/@jmarhee/in-cluster-docker-registry-with-tls-on-kubernetes-758eecfe8254