当我从
docker-compose.yml
文件启动多个 Docker 容器时,我的主机上的互联网连接不再工作。一旦我关闭所有 Docker 容器,我的机器上的互联网连接就会立即恢复。 我要启动的服务在
docker-compose.yml
文件中指定:
version: "3.8"
services:
agent_1:
....
我通过以下命令启动容器(使用 40 作为任意数量的容器):
docker-compose up --build --scale agent_1=40 agent_1
我尝试了下面列出的方法,但到目前为止,没有一个对我有用。
我通过以下命令创建了一个网络:
docker network create --driver bridge agent_network --subnet 10.10.1.0/24
因此,我编辑了
docker-compose.yml
文件以使用自定义网络:
version: "3.8"
networks:
default:
external: true
name: agent_network
services:
agent:
...
首先,我编辑了
/etc/docker/daemon.json
文件以启用 IPv6:
{
"ipv6": true,
"fixed-cidr-v6": "2a01:4f8:a:b::/64",
}
然后,我创建了一个网络,与之前类似:
docker network create --driver bridge --ipv6 --subnet=2a01:4f8:a:b:c::/80 agent_network
由于网络与方法 #1 具有相同的名称,因此
docker-compose.yml
文件是相同的。
在此方法中,我将
docker-compose.yml
文件配置为使用基于 macvlan 驱动程序的 Docker 网络并连接到我的本地以太网适配器 (enp34s0)
version: "3.8"
networks:
dockervlan:
name: dockervlan
driver: macvlan
driver_opts:
parent: enp34s0
ipam:
config:
- subnet: "10.10.2.0/24"
gateway: "10.10.2.1"
services:
agent_1:
networks:
- dockervlan
...
主机操作系统:Ubuntu 22.04.1 LTS
主机IP:192.168.0.34
码头工人:20.10.22
docker-compose:1.29.2
我还尝试使用运行虚拟机(Ubuntu 20.04.5 LTS)的远程服务器,但这导致了相同的行为。
此外,我确保两个系统上的 IP 范围都没有冲突。
解决方案:https://stackoverflow.com/a/34760791 (我尝试过,它对我有用)
解决方案是使用以下内容创建或编辑 /etc/connman/main.conf:
[General]
NetworkInterfaceBlacklist=vmnet,vboxnet,virbr,ifb,docker,veth,eth,wlan
并重新启动 connman。
如此处所述。