【问题标题】:How to publish services with ssl using docker-compose?如何使用 docker-compose 通过 ssl 发布服务?
【发布时间】:2018-11-19 07:48:30
【问题描述】:

我有一个使用在 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            

【问题讨论】:

    标签: docker docker-compose twitter-finagle finatra


    【解决方案1】:

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

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

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

    【讨论】:

    • 实际上我打算在我朋友的服务器上运行我的服务,他已经在使用 nginx 来运行很多其他服务,但是我不知道如何用他的 nginx 运行我的服务,因为我使用码头工人撰写。我有点困惑。我的朋友有一台带有 nginx 的服务器,我将使用 docker-compose 在那里运行我的服务。我只是不知道我应该做什么样的配置。
    • nginx 配置需要了解您使用的任何域上的入站流量。我发送的链接中提供了配置选项。你也可以使用 docker-compose,不过我建议你在 Swarm 模式下运行你的工作负载,以防你的应用程序死掉并且需要重新启动(docker-compose 不会这样做)。
    • 好的,谢谢你的信息,我会接受的!顺便说一句,您有任何示例如何为我的 docker-compose 设置 swarm 模式。基本上我只想有相同的设置。
    • docker swarm init初始化一个Swarm:docs.docker.com/engine/reference/commandline/swarm_init。请记住,您现在启用了一些很酷的新功能,例如运行无状态服务的多个实例(副本)。还可以在这里查看我的 GitHub 学习存储库:github.com/brbarnett/…。希望有帮助!
    猜你喜欢
    • 1970-01-01
    • 2023-02-22
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 2019-07-24
    相关资源
    最近更新 更多