Differences

This shows you the differences between two versions of the page.

Link to this comparison view

blog:work_around_fix_docker_loses_network_connectivity_after_first_session_terminates [2017/08/23 15:53] (current)
jpk created
Line 1: Line 1:
 +====== [Work around/Fix] Docker loses network connectivity after first session terminates ======
 +
 +Recently, I had trouble setting up docker, or to be more precise: running it. Every time I started the Docker daemon, and ran something like:
 +
 +<​code>​
 +$ docker run busybox ping -c 3 8.8.8.8
 +PING 8.8.8.8 (8.8.8.8): 56 data bytes
 +64 bytes from 8.8.8.8: seq=0 ttl=45 time=20.118 ms
 +64 bytes from 8.8.8.8: seq=1 ttl=45 time=23.727 ms
 +64 bytes from 8.8.8.8: seq=2 ttl=45 time=19.803 ms
 +
 +--- 8.8.8.8 ping statistics ---
 +3 packets transmitted,​ 3 packets received, 0% packet loss
 +round-trip min/avg/max = 19.803/​21.216/​23.727 ms
 +</​code>​
 +
 +Everything worked fine, but than the container was shut down, and I tried to run this container again it failed to connect/​ping.
 +
 +The first thing I noticed the ''​docker0''​ network interface had lost its IP address. Restarting Docker fixed this problem, but for doing a simple ''​ping'',​ this is not a valid option. At first I though it might be the ''​avahi-daemon''​ causing trouble, because I found things like
 +
 +  Withdrawing address record for fe80::​a80e:​15ff:​fe76:​6a1e on veth8cdefb7.
 +  Withdrawing address record for 172.26.0.1 on docker0.
 +
 +in my logs. But this was just an misinterpretation of the messages, I think.
 +
 +It took my I while to come up with the idea to check the routes. What I observed, when ever an container stop and is terminated the ''​docker0''​ interface was also shutdown and the route for this network and device were also deleted. Starting the container again did not add the route again.
 +
 +As solution I have created a ''​docker.network''​ configuration - as I am using systemd - to configure the network and routes properly.
 +
 +''/​etc/​systemd/​network/​docker.network'':​
 +<​code>​
 +[Match]
 +Name=docker*
 +
 +[Network]
 +DNS=192.168.0.1
 +Address=172.26.0.1/​16
 +Gateway=192.168.0.1
 +IPForward=kernel
 +</​code>​
 +
 +~~LINKBACK~~
 +~~DISCUSSION~~
  
Last modified: le 2017/08/23 15:53