是否可以将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
这是保护机器上所有容器安全的正确做法吗?
答案 0 :(得分:3)
dockerd
tls选项用于配置守护程序以监听网络端口,而不是docker.sock或在docker.sock上监听。这是针对Docker API请求的,而不是到达您的应用程序的,我不相信您的要求。
听起来您正在寻找TLS终止并将请求转发到HTTP中的应用程序。为此,可以在容器前面运行各种反向代理。示例包括nginx,traefik,haproxy,并且我相信大多数(如果不是全部)功能都将TLS终止。它们确实倾向于集中在第7层和HTTP协议上,因此,如果您有其他类型的协议,则可能被迫将TLS凭据装入容器中,最好是作为秘密,或者最坏的情况是将其作为只读卷。 / p>