4

有没有办法将 docker run 配置为使用 https?就像是:

docker run --https --certs xyz  myimage 

还是您必须在 Dockerfile/图像中配置这些东西?对于 TLS 也是如此。

 docker run --tls --certs xyz  myimage 

一个优点是我们不必将证书复制到映像中 - 我宁愿避免将证书放在映像和/或运行容器中。

虽然我猜最好的做法是使用-v选项将证书从主机共享到容器中。

更新:经过一些研究,我发现了这个: https ://docs.docker.com/engine/security/https/

它说用这样的东西启动 docker 域:

 dockerd --tlsverify --tlscacert=ca.pem \
   --tlscert=server-cert.pem --tlskey=server-key.pem \
   -H=0.0.0.0:2376

这是保护机器上所有容器的正确做法吗?

4

1 回答 1

2

tls 选项用于将dockerd守护进程配置为在网络端口上侦听,而不是在 docker.sock 上进行侦听。这是针对 docker API 请求,而不是到达您的应用程序,我不相信您的要求。

听起来您正在寻找 TLS 终止并在 HTTP 中将请求转发到您的应用程序。为此,可以在容器前面运行各种反向代理。示例包括 nginx、traefik、haproxy,我相信大多数(如果不是全部)都具有 TLS 终止功能。他们确实倾向于关注第 7 层和 HTTP 协议,因此如果您有其他类型的协议,您可能会被迫将 TLS 凭据安装到您的容器中,最好是作为机密,或者最坏的情况是只读卷。

于 2019-05-19T14:55:07.200 回答