【问题标题】:How to configure port mapping for replicated containers in Docker Compose?如何在 Docker Compose 中为复制的容器配置端口映射?
【发布时间】:2021-12-29 08:10:34
【问题描述】:

目标是运行publisher-app 的两个容器。一个容器应该映射到主机上的 8080 端口,另一个在 8081 上。这是docker-compose

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

创建了两个容器,但据我了解,两个端口都分配给第一个,第二个产生此错误: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

Docker 引擎版本:20.10.11

Docker 撰写版本:2.2.1

如何处理这种情况?非常感谢您的帮助。

这里是源代码:https://github.com/aleksei17/springboot-rest-kafka-mysql/blob/master/docker-compose.yml

【问题讨论】:

标签: docker docker-compose


【解决方案1】:

在本地尝试并以类似方式失败,无论是使用 v2 还是禁用 v2。

好像是compose issue

在 Arch 上试用时:amd64 基于 Fedora 的 Linux 发行版,包管理器安装了 docker 并手动安装 docker-compose 1.29.2 (using the official guide for linux) 工作

编写文件:

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

泊坞窗命令:

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

【讨论】:

    猜你喜欢
    • 2022-10-17
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2020-07-23
    相关资源
    最近更新 更多