Answer a question

The goal is to run two containers of publisher-app. One container should be mapped to port 8080 on the host machine, and the other on 8081. Here is the docker-compose:

  publisher_app:
    ports:
      - "8080-8081:8080"
    environment:
      server.port: 8080
    deploy:
      mode: replicated
      replicas: 2

Two containers are created, but as I understand, both ports are assigned to the first one, and the second one produces this error: Ports are not available: listen tcp 0.0.0.0:8081: bind: address already in use.

Here is the output of 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

Docker engine version: 20.10.11

Docker compose version: 2.2.1

How to handle this case? Your help will be very appreciated.

Here is the source code: https://github.com/aleksei17/springboot-rest-kafka-mysql/blob/master/docker-compose.yml

Answers

tried locally on Windows 10 and failed similarly, both with v2 and with v2 disabled.

It seems like a compose issue

when tried on arch: amd64 fedora based linux distro with package manager installed docker and manually installing docker-compose 1.29.2 (using the official guide for linux) worked:

compose file:

version : "3"
services:
  web:
    image: "nginx:latest"
    ports:
      - "8000-8020:80"

docker command:

docker-compose up --scale web=5
CONTAINER ID   IMAGE                                     COMMAND                  CREATED          STATUS                    PORTS                                   NAMES
b304d397b2cd   nginx:latest                              "/docker-entrypoint.…"   14 seconds ago   Up 7 seconds              0.0.0.0:8004->80/tcp, :::8004->80/tcp   testdir_web_4
a8c6f177a6e6   nginx:latest                              "/docker-entrypoint.…"   14 seconds ago   Up 7 seconds              0.0.0.0:8003->80/tcp, :::8003->80/tcp   testdir_web_3
b1abe53e7d7d   nginx:latest                              "/docker-entrypoint.…"   14 seconds ago   Up 8 seconds              0.0.0.0:8002->80/tcp, :::8002->80/tcp   testdir_web_2
ead91e9df671   nginx:latest                              "/docker-entrypoint.…"   14 seconds ago   Up 9 seconds              0.0.0.0:8001->80/tcp, :::8001->80/tcp   testdir_web_5
65ffd6a87715   nginx:latest                              "/docker-entrypoint.…"   24 seconds ago   Up 21 seconds             0.0.0.0:8000->80/tcp, :::8000->80/tcp   testdir_web_1
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐