如何将单端口用于 3 个容器而不是 3 个端口 Python-Flask、PostgreSQL 和 Angular8 ?所以我可以使用 Docker Run 而不是 Docker Compose



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

如果您唯一希望对"外部"可见的是 API,则可以在调用docker run时使用--link标志。 基本上,启动PG容器,然后启动Flask容器,链接到PG,然后启动Angular容器,链接到Flask。 但是,--link标志是一项旧功能,可能会在将来的某个时候消失。

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

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

最新更新