如何将单端口用于3个容器而不是3个端口Python Flask、PostgreSQL&;安格拉尔8号?所以我可以使用Docker Run而不是Docker Compose

如何将单端口用于3个容器而不是3个端口Python Flask、PostgreSQL&;安格拉尔8号?所以我可以使用Docker Run而不是Docker Compose,python,postgresql,docker,flask,angular8,Python,Postgresql,Docker,Flask,Angular8,我创建了三个容器,一个用于Python Flask应用程序,第二个用于PostgreSQL db,第三个用于angular8。我使用Docker compose来运行这个。我的问题是,每个容器都有3个端口。有没有办法只使用一个端口来运行整个应用程序,比如Docker run而不是Docker Compose?我所需要的只是一个端口,可以从任何地方调用此API。如果“外部”只想看到API,则可以在调用docker run时使用--link标志。基本上,启动PG容器,然后启动烧瓶容器,连接到PG,然

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

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

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


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

您可以从不需要从外部访问的组件中删除已发布的
端口:
。对于这三个容器,您可以使用三个单独的
docker run
命令,但保持单个
docker组合可能更容易。