如何使用 docker-compose 通过 ssl 发布服务?

How to publish services with ssl using docker-compose?

我在 docker 容器上使用 finatra 服务器 运行 的服务。目前我正在使用 letsencrypt ,我创建了我的 .pfx 文件等。但我不知道如何将它与 docker-compose 一起使用。我的项目中有一个 keystore 文件夹,其中包含我的 ssl 文件。 这是我的 docker-compose.yml

version: '2'
services:
    test:
        build: target/docker/stage
        ports:
            - "9999:9999"
            - "9990:9990"
        links:
            - mongo:mongo
        depends_on:
            - mongo

    mongo:
        image: mongo
        ports:
            - "27017:27017"
        volumes:
            - ./mydb:/data/db            

我推荐使用 nginx 及其 SSL 终止功能:https://docs.nginx.com/nginx/admin-guide/security-controls/terminating-ssl-http/

nginx 服务应该是您应用程序的入口点,您可以在其中使用您提供的 cert/key 终止 SSL,然后通过覆盖网络在您的容器应用程序之间传递未加密的流量。

最佳做法是像这样终止 SSL,如果您确实想加密集群内的网络流量,那么请使用来自入口控制器的单独证书进行加密。