0

tl;dr 我希望此堆栈中的每个容器都使用相同的 IP 和 MAC 地址并位于我的本地网络上,但需要有关如何操作的帮助

对于初学者来说,我是 docker 和 docker-compose 的新手。我为我的 Plex 服务器制作了一个 docker-stack(其中三个,一个用于按一般类别/电视节目、音乐和假期分类的电影),每个服务器在我的本地网络上都有自己的 IP 地址和 MAC,现在我想为我的一些媒体管理工具制作第二个堆栈,但这次我希望整个堆栈使用一个 IP 地址和 MAC 地址,但我无法弄清楚如何正确执行/所以它可以工作这是在 QNAP NAS (TVS1282v3/QTS) 上运行,但我正在通过 CLI 工作,因为我倾向于如果我通过容器站执行 docker-compose,它不会为我创建网络

version: '2.4'

services:
  Sonarr:
    image: linuxserver/sonarr
    container_name: Sonarr
    environment:
      - TZ=AMERICA/Denver
      - name= Sonarr
    volumes:
      - /share/MediaManagement/Sonarr/config:/config:rw
      - /share/MediaManagement/rip:/rip:rw
      - /share/Plex:/Plex:rw
    ports:
      - 8989:8989
    restart: unless-stopped

  Radarr:
    image: linuxserver/radarr
    container_name: Radarr
    environment:
      - TZ=AMERICA/Denver
      - name= Radarr
    volumes:
      - /share/MediaManagement/Radarr/config:/config:rw
      - /share/MediaManagement/rip:/rip:rw
      - /share/Plex:/Plex:rw
    ports:
      - 7878:7878
    restart: unless-stopped

  Lidarr:
    image: linuxserver/lidarr
    container_name: Lidarr
    hostname: Lidarr
    environment:
      - TZ=AMERICA/Denver
      - name= Lidarr
    volumes:
      - /share/MediaManagement/Lidarr/config:/config:rw
      - /share/MediaManagement/rip:/rip:rw
      - /share/Plex:/Plex:rw
    ports:
      - 8686:8686
    restart: unless-stopped

  networks:
    qnet-static:
      ipv4_address: 192.168.2.100
    mac_address: 05:4A:AA:08:51:43
    
networks:
  qnet-static:
    driver: qnet
    ipam:
      driver: qnet
      options:
        iface: "eth0"
      config:
        - subnet: 192.168.2.0/23
          gateway: 192.168.2.1

我也尝试过它,就像它在我放置的 Plex 撰写文件中的设置方式一样

services:
  NameOfService:
    mac_address: 05:4A:AA:08:51:43
    networks:
      qnet-static:
        ipv4_address: 192.168.2.100
....
networks: ##At the end, not in each service##
  qnet-static:
    driver: qnet
    ipam:
      driver: qnet
      options:
        iface: "eth0"
      config:
        - subnet: 192.168.2.0/23
          gateway: 192.168.2.1

在每项服务中,但只有第一个容器有效....

我也曾尝试过这一点,但仍然没有运气/它的语法错误

networks:
  qnet-static:
    driver: qnet
    ipam:
      driver: qnet
      options:
        iface: "eth0"
      config:
        - subnet: 192.168.2.0/23
          gateway: 192.168.2.250
    ipv4_address: 192.168.2.100
  mac_address: 05:4A:AA:08:51:43

任何帮助将不胜感激,因为我可能只是错过了一个小作品

4

1 回答 1

0

彻底删除networks:文件中的所有设置。不要尝试手动为容器分配 IP 地址或配置它们的 MAC 地址。

您的容器将可以通过您主机的 IP 地址访问,使用ports:每个容器的第一个数字。就您网络上的其他主机而言,容器中的进程将与不在容器中运行的其他服务无法区分。

您也不需要手动设置container_name:hostname:在大多数情况下。在 Docker 文档中的Networking in Compose中有关于 Compose 网络环境的其他详细信息,尽管这主要关注容器之间的连接。您通常不需要考虑容器专用 IP 地址或(尤其是)容器网络环境中的人工 MAC 地址。

于 2021-01-12T21:03:11.670 回答