Java 向docker-compose.yml公开随机端口
我需要同一应用程序的多个实例,因为我正在使用Java 向docker-compose.yml公开随机端口,java,spring,spring-boot,docker,docker-compose,Java,Spring,Spring Boot,Docker,Docker Compose,我需要同一应用程序的多个实例,因为我正在使用 server.port=0在随机端口中运行应用程序。 我的问题是如何将随机生成的端口映射到docker-compose.yml以创建多个实例。 我在后端使用弹簧靴。我找不到任何解决办法。 非常感谢您的帮助 每个Docker容器在一个独立的网络名称空间中运行一个进程,因此这不是必需的。选择一个固定端口。对于HTTP服务,公共端口号包括80、3000、8000和8080,具体取决于权限和语言运行时(80需要提升权限,3000是节点的默认值,依此类推)。确
server.port=0
在随机端口中运行应用程序。
我的问题是如何将随机生成的端口映射到docker-compose.yml以创建多个实例。
我在后端使用弹簧靴。我找不到任何解决办法。
非常感谢您的帮助 每个Docker容器在一个独立的网络名称空间中运行一个进程,因此这不是必需的。选择一个固定端口。对于HTTP服务,公共端口号包括80、3000、8000和8080,具体取决于权限和语言运行时(80需要提升权限,3000是节点的默认值,依此类推)。确切的端口号并不重要 您可以使用已发布的端口从Docker空间外部访问端口。如果您正在运行多个容器,那么如果多个服务使用相同的主机端口,则可能会发生冲突,这可能是您试图避免的。在选项或Docker Compose设置中,可以只列出容器内运行的端口,Docker将为您选择主机端口
版本:“3”
服务:
网状物:
图片:。。。
端口:
-“8000”#无显式主机端口
命令:-Dserver.port=8000#固定集装箱端口
web8000
将告诉您主机(公共)端口号。对于同一docker compose.yml
文件中容器之间的通信,可以使用服务名称和(固定的、已知的)内部端口http://web:8000
我可以使用容器的固定端口与docker compose文件中的容器通信,并将它们公开给主机。server.port=0在运行时生成随机端口。我们有没有办法将随机生成的端口公开给主机?没有,Docker端口映射机制需要容器内的固定端口。由于每个容器都在一个孤立的网络环境中运行,因此不需要随机分配端口。我是docker的新手。我现在有点困惑。如果我们进行端口修复,而我们装箱多个实例,可能会有端口绑定问题。端口固定时如何创建多个实例?“将告诉您主机(公共)端口号是多少。”我在输出中没有看到这一点。它在哪里告诉我的?