首页 > 解决方案 > 如何为在没有本地主机的 Windows 上的网络中运行的两个 docker 容器设置相同的 IP?

问题描述

我有 4 个容器。我希望 2 个容器在一个网络上为它们设置一个 IP,而其他 2 个容器具有另一个 IP(与已经设置的第一个 IP 不同)。例如,container1andcontainer2应该可以分别在ip1athttps://ip1:9090和上访问,https://ip1:8080而 container3 和 container4 应该可以分别在ip2athttps://ip2:9090和上访问https://ip2:8080。我在 StackOverflow 上看到了一些解决方案来实现这一点,Linux但我希望它能够在Windows. 请注意,container1 依赖于 container2,同样,container3 也依赖于 container4。如果我只有container1container2在其中docker-compose file运行它,我可以访问这些服务,localhost但我不想要这个,而是我想在ip我为这些容器设置的。

示例 dockerCompose.yml 文件:

services:

  service1:
    image: image1
    container_name: container1
    networks:
      - network1
    ports:
      - "9090:5000"

  service2:
    image: image2
    container_name: container2
    networks:
      - network1
    ports:
      - "8080:5000"

  service3:
    image: image1 // same image as in services1
    container_name: container3
    networks:
      - network2
    ports:
      - "9090:5000" // same ports as in services1

  service4:
    image: image2 // same image as in services2
    container_name: container4
    networks:
      - network2
    ports:
      - "8080:5000"  // same ports as in services2

networks:
    network1:
      ipv4_address: 10.5.0.6
    network2:
      ipv4_address: 10.5.0.7

标签: dockerdocker-compose

解决方案


推荐阅读