启动 Docker 容器时,主机失去互联网连接

问题描述 投票:0回答:1

问题:

当我从

docker-compose.yml
文件启动多个 Docker 容器时,我的主机上的互联网连接不再工作。一旦我关闭所有 Docker 容器,我的机器上的互联网连接就会立即恢复。
仅当我启动的容器数量高于 32 时才会发生这种情况。


程序:

我要启动的服务在

docker-compose.yml
文件中指定:

version: "3.8"

services:
  agent_1:
  ....

我通过以下命令启动容器(使用 40 作为任意数量的容器):

docker-compose up --build --scale agent_1=40 agent_1

解决方法:

我尝试了下面列出的方法,但到目前为止,没有一个对我有用。

#1:为 Docker 容器指定 IPv4 子网

我通过以下命令创建了一个网络:

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:
    ...

#2:创建 IPv6 Docker 网络

首先,我编辑了

/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
文件是相同的。

#3:创建 MacVLAN Docker 网络:

在此方法中,我将

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 范围都没有冲突。

我将非常感谢有关此问题的任何想法或替代方法。

docker docker-compose network-programming docker-networking docker-network
1个回答
0
投票

解决方案:https://stackoverflow.com/a/34760791 (我尝试过,它对我有用)

解决方案是使用以下内容创建或编辑 /etc/connman/main.conf:

[General]
NetworkInterfaceBlacklist=vmnet,vboxnet,virbr,ifb,docker,veth,eth,wlan

并重新启动 connman。

此处所述。

© www.soinside.com 2019 - 2024. All rights reserved.