我的设置:我有一个外部定义的ipvlan l3网络连接到主机nic名为dmz_net。它跨越一个独立的子网来连接多个容器。这如预期的那样起作用。现在,我想要创建一个带有docker组合的服务堆栈。它有一个后端容器(数据库)和一个服务容器。后端容器有自己定义的内部网络(默认桥接模式)。服务容器应该连接到'dmz_net‘网络和后端网络。
船坞组成萃取物
networks:
dmz:
external:
name: dmz_net
backend:
internal: true
services:
service:
networks:
dmz:
ipv4_address: ${IPV4}
backend:docker network inspect dmz_net
[
{
"Name": "dmz_net",
"Id": "9b98f5e01245c8081a10fe377a450e1e5eedd08511b4e715b4469986d7aadce6",
"Created": "2022-02-21T20:37:58.688032649+01:00",
"Scope": "local",
"Driver": "ipvlan",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "10.20.10.0/24"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
},
"Options": {
"ipvlan_mode": "l3",
"parent": "enp36s0f1.20"
},
"Labels": {}
}
]错误消息failed to set gateway while updating gateway: file exists启动服务容器失败。
我怎么才能让它起作用?有可能吗?
发布于 2022-02-26 16:07:35
经过长时间的实验和小小的睡眠,我找到了解决办法.
不幸的是,在docker文档中没有提到它,只有一个7年前的问题描述了这个问题,并有一个按下来解决它。看看密码给我灯光..。
解决方案:对内部(后端)网络使用ipvlan L3驱动程序(而不是默认桥),并设置“internal=true”。此定义阻止稍后的网络连接来创建默认网关,如果另一个(外部可达,即意味着internal=false) L3网络已连接,则无法创建默认网关。
希望其他人能找到有用的信息。
https://stackoverflow.com/questions/71273149
复制相似问题