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任何帮助都将不胜感激,因为我可能只是遗漏了一小部分。
发布于 2021-01-13 05:03:12
完全删除文件中的所有networks:设置。请勿尝试手动为容器分配IP地址或配置其MAC地址。
可以通过主机的IP地址访问容器,每个容器使用第一个ports:编号。对于网络上的其他主机而言,容器中的进程将无法与其他未在容器中运行的服务区分开来。
在大多数情况下,您也不需要手动设置container_name:或hostname:。Docker文档中还有关于Networking in Compose中的Compose网络环境的其他细节,尽管这主要集中在容器之间的连接上。您通常不需要考虑容器私有IP地址,或者(特别是)容器网络环境中的人工MAC地址。
https://stackoverflow.com/questions/65691111
复制相似问题