从Docker容器通过networking访问KVM VM

KVM用于托pipenetworking192.168.2.1/24中的一些虚拟机。 Docker运行在192.168.3.1/24的同一台机器上。 我需要configurationnetworking,以便Docker容器可以访问KVM虚拟机。 为了testing目的,我有两台机器,每台机器运行一个web服务器来testing使用wget的工作连接:

Docker Container在192.168.3.2上

KVM虚拟机在192.168.2.2

在KVM中,我将虚拟networkingconfiguration为redirect到所有物理networking。 这使我可以从KVM虚拟机访问Docker容器。 但是不能正常工作 :从Docker容器(192.168.3.2)访问KVM虚拟机(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缺less什么KVM虚拟networking向导?

/etc/sysctl.conf启用net.ipv4.ip_forward=1 ,并使用sysctl --system重新加载。

Dockernetworking接口

 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 

KVMnetworking接口

 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