首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker compose的网络IP地址

docker compose的网络IP地址
EN

Stack Overflow用户
提问于 2021-01-13 03:52:10
回答 1查看 722关注 0票数 0

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

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

代码语言:javascript
复制
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组合文件中设置的一样,我把它放在

代码语言:javascript
复制
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

在每个服务中,但只有第一个容器工作...

我也尝试过这个方法,但是仍然没有成功/它的语法错误

代码语言:javascript
复制
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

任何帮助都将不胜感激,因为我可能只是遗漏了一小部分。

EN

回答 1

Stack Overflow用户

发布于 2021-01-13 05:03:12

完全删除文件中的所有networks:设置。请勿尝试手动为容器分配IP地址或配置其MAC地址。

可以通过主机的IP地址访问容器,每个容器使用第一个ports:编号。对于网络上的其他主机而言,容器中的进程将无法与其他未在容器中运行的服务区分开来。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65691111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档