gpt4 book ai didi

networking - 从 Docker 容器通过网络访问 KVM 虚拟机

转载 作者:行者123 更新时间:2023-12-04 02:01:48 25 4
gpt4 key购买 nike

KVM 用于托管网络 192.168.2.1/24 中的一些 VM。 Docker 在 192.168.3.1/24 的同一台机器上运行。我需要配置网络以便 Docker 容器可以访问 KVM 虚拟机。出于测试目的,我有两台机器,每台机器都运行一个网络服务器来测试使用 wget 的工作连接:

192.168.3.2 上的 Docker 容器

192.168.2.2 上的 KVM 虚拟机

在 KVM 中,我将虚拟网络配置为重定向到所有物理网络。这允许我从 A KVM VM 访问 Docker 容器。但是不工作反之亦然:从 Docker 容器 (192.168.3.2) 访问 KVM VM (192.168.2.2)。

docker network create --driver=bridge --subnet=192.168.3.1/24 my-network

容器是这样启动的:
docker run --name=gogs --network=my-network --ip=192.168.3.2 -v /var/gogs:/data gogs/gogs

缺少 Docker 的 KVM 虚拟网络向导在这里做什么?
net.ipv4.ip_forward=1/etc/sysctl.conf 中启用我使用 sysctl --system 重新加载.

Docker 网络接口(interface)
br-7b4175d9379d: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
inet 192.168.3.1 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fe80::42:9ff:fe6b:75dd prefixlen 64 scopeid 0x20<link>
ether 02:42:09:6b:75:dd txqueuelen 0 (Ethernet)
RX packets 90 bytes 41977 (41.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 116 bytes 18172 (18.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

KVM 网络接口(interface)
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255
ether 52:54:00:85:7f:95 txqueuelen 1000 (Ethernet)
RX packets 1463 bytes 101054 (101.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1214 bytes 1490407 (1.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

最佳答案

你可以在同一个网桥上运行 KVM/libvirt 和 Docker。假设您的 KVM 桥接器是 virbr0。

首先按照 Docker documentation 中的建议创建配置文件/etc/docker/daemon.json具有以下内容(甚至可能不需要 iptables 行):

{
"bridge": "virbr0",
"iptables": false
}

比您停止容器并重新启动 docker 守护程序服务:
systemctl restart docker

Docker 应该选择您的 KVM 桥接器,当您重新启动现有容器时,它们将在 virbr0 地址空间中选择一个 IP 地址,而不是默认的 docker0。

我必须做两次才能让它工作,但它听起来很简单,就像运行 docker v18.09 一样。现在,我的虚拟机和容器在同一个网段上运行。

关于networking - 从 Docker 容器通过网络访问 KVM 虚拟机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43820909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com