Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向docker-compose.yml公开随机端口_Java_Spring_Spring Boot_Docker_Docker Compose - Fatal编程技术网

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的新手。我现在有点困惑。如果我们进行端口修复,而我们装箱多个实例,可能会有端口绑定问题。端口固定时如何创建多个实例?“将告诉您主机(公共)端口号是多少。”我在输出中没有看到这一点。它在哪里告诉我的?