我创建了三个容器,一个用于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
通常是更干净的方法,因为它可以帮助您实现自动化的一致性。