【问题标题】:How to use Single port for 3 containers instead of 3 ports Python-Flask, PostgreSQL & Angular8 ? so I can use Docker Run instead of Docker Compose如何将单端口用于 3 个容器而不是 3 个端口 Python-Flask、PostgreSQL 和 Angular8?所以我可以使用 Docker Run 而不是 Docker Compose
【发布时间】:2023-03-19 15:10:02
【问题描述】:

我创建了三个容器,一个用于 Python Flask 应用程序,第二个用于 PostgreSQL db,第三个用于 angular8。我使用 Docker compose 来运行它。我的问题是每个容器都有端口,所以总共有 3 个端口。有没有一种方法可以让我只使用一个端口来运行整个应用程序,比如 Docker Run 而不是 Docker Compose?我想要的只是一个可以从任何地方调用此 API 的端口。

【问题讨论】:

  • 您可以从不需要外部访问的组件中删除已发布的ports:。您可以为三个容器分别设置三个 docker run 命令,但保留单个 docker-compose up 可能更容易。

标签: python postgresql docker flask angular8


【解决方案1】:

如果您只想让“外部”看到 API,则可以在调用 docker run 时使用 --link 标志。基本上,启动 PG 容器,然后启动 Flask 容器,链接到 PG,然后启动 Angular 容器,链接到 Flask。但是,--link 标志是一项遗留功能,将来可能会消失。

另一种选择是使用docker network create 创建一个网络,并确保您的三个容器都使用同一个网络。它们应该都可以通过这种方式相互通信,您只需要发布 API 端口,以便其他应用可以使用您的 API。

我不确定您的要求是什么,但docker-compose 通常是更简洁的方法,因为它可以帮助您实现自动化的一致性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 2023-03-17
    • 2021-09-05
    • 2018-07-28
    相关资源
    最近更新 更多