目标是运行两个容器publisher-app。一个容器应映射到主机上的端口 8080,另一个容器应映射到主机上的端口 8081。以下是docker-compose:
publisher_app:
ports:
- "8080-8081:8080"
environment:
server.port: 8080
deploy:
mode: replicated
replicas: 2
Run Code Online (Sandbox Code Playgroud)
创建了两个容器,但据我了解,两个端口都分配给第一个容器,第二个容器产生此错误:Ports are not available: listen tcp 0.0.0.0:8081: bind: address already in use。
这是输出docker ps -a:
6c7067b4ebee spring-boot-rest-kafka_publisher_app "java -jar /app.jar" 33 seconds ago Up 28 seconds 0.0.0.0:8080->8080/tcp, 0.0.0.0:8081->8080/tcp spring-boot-rest-kafka_publisher_app_2
70828ba8f370 spring-boot-rest-kafka_publisher_app "java -jar /app.jar" 33 seconds ago Created spring-boot-rest-kafka_publisher_app_1
Run Code Online (Sandbox Code Playgroud)
Docker 引擎版本:20.10.11
Docker 撰写版本:2.2.1
此案如何处理?我们将非常感谢您的帮助。
这是源代码:https://github.com/aleksei17/springboot-rest-kafka-mysql/blob/master/docker-compose.yml