Ubuntu: Networking - Docker and KVM on the same box

If you like me have a box which is running everything, like; Docker, kvm and lxc then you probably also once in a while get gray hair from sorting out networking. 

So Docker like to control networking and I let it - only exception is that I'm having a separate bridge (macvlan) for everything Docker as it does sometimes makes life easier (not often).

But as Docker see everything, even with multiple network cards / bridges as one whole, it does apply it's iptables rules to everything. Which does cause some problems for kvm and lxc. 

One easy way to allow communcation to the kvm vm's via your bridge (if you use bridged networking) is to allow it:

iptables -A FORWARD -i br0 -o br0 -j ACCEPT

Replace 'br0' with what ever you use as bridge for kvm / lxc.

To have this to execute automatically everytime you retart networking (reboot the box) create the following file: /etc/systemd/system/restore-iptables-rules.service

With this content:

 [Unit]  
 Description = Apply iptables rules  
 [Service]  
 Type=oneshot  
 ExecStart=/bin/sh -c 'iptables -A FORWARD -i br0 -o br0 -j ACCEPT'  
 [Install]  
 WantedBy=network-online.target  

Make it stick: systemctl enable restore-iptables-rules.service

And Bob's your Uncle.

Comments

Popular posts from this blog

Apple AirPort Express and Digital Jitter..

EIZO Colornavigator - Data Access Error

Using Borg backup across SSH with sshkeys