【问题标题】:Progressively migrating to Docker in production在生产环境中逐步迁移到 Docker
【发布时间】:2017-01-25 12:22:53
【问题描述】:

我开始习惯于使用 Docker 构建的环境来开发我的应用程序。

我有一个物理服务器,我在其上使用 Apache 为多个(本地安装的)Web 应用程序提供服务。

Apache listening on 80
    sites-available
        app1 -> locally installed in /apps/app1
        app2 -> locally installed in /apps/app2
        ...

现在我刚刚为我的一个应用程序准备了一个带有 Docker 的全栈生产环境。我想将它插入本地安装的应用程序旁边的旧服务器中:

Apache listening on 80
    sites-available
        app1 -> locally installed in /apps/app1
        app2 -> locally installed in /apps/app2
        app3 -> proxy to the related Docker service
        ...

并逐步 Dockerize 我的其他现有应用程序。

主要问题是:
我每次都必须在专用端口中公开我的 dockerized 服务吗?

是否有一些我不知道的网络技术可以用来最终代理在同一台机器上运行的多个服务?

您还可以指出一些 Apache 代理示例吗?

当我有一个独占代理时,我最终会打开 Nginx。

【问题讨论】:

    标签: apache nginx docker


    【解决方案1】:

    在 Docker 中,公开特定容器的首选方法是使用专用端口。有多种方法可以直接连接到容器,尤其是当您在同一台机器上运行时,但如果容器重建,您将面临尝试跟踪容器当前 IP 的挑战。

    对于您的场景,我建议在容器中放置第二个代理。由于它作为容器运行,它可以通过名称连接到其他每个容器。我个人最喜欢的实现是nginx-proxy,它侦听容器启动和停止的 docker 套接字以自动更新其配置。

    然后,一旦您完成向容器的迁移,您可以在关闭现有的 apache 代理进程时在 nginx 代理上添加另一个侦听端口。

    【讨论】:

    • 这很有趣。我认为主要是我正在寻找的东西。
    猜你喜欢
    • 1970-01-01
    • 2016-02-17
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多