KVM is used to host some VMs in the network 192.168.2.1/24. Docker is running on the same machine in 192.168.3.1/24. I need to configure networking so that Docker containers can access a KVM VM. For testing purpose I have two machines, each running a webserver to test working connections using wget:
Docker Container on 192.168.3.2
KVM VM on 192.168.2.2
In KVM I configured a virtual network as redirection to all physical networks. This allows me to access the Docker container from A KVM VM. But not working is the other way round: Accessing the KVM VM (192.168.2.2) from the Docker container (192.168.3.2).
docker network create --driver=bridge --subnet=192.168.3.1/24 my-network
The container is started like this:
docker run --name=gogs --network=my-network --ip=192.168.3.2 -v /var/gogs:/data gogs/gogs
What is the KVM virtual network wizard doing here that Docker is missing?
net.ipv4.ip_forward=1
is enabled in /etc/sysctl.conf
and I did a reload using sysctl --system
.
Docker network 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 network 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