Ubuntu – Docker daemon no longer start with kernel 3.19.0-21

15.04dockerkernel

On Tuesday this week, I received a Kernel update from 3.19.0-20 to 3.19.0-21 on my laptop (Latitude E6520). At reboot I had kernel panics, so I picked 3.19.0-20 from the boot menu and all was well for the rest of the day. The day after (i.e. yesterday), kernel 3.19.0-21 booted without problem, and everything was running OK except the Docker daemon. Rebooting with kernel 3.19.0-20 fixes it. Anyone has an idea how to possibly unblock it? Otherwise I'll set 3.19.0-20 as my default kernel until the next update.

UPDATE: Docker 1.7 doesn't solve it. Log is different though (see below).

With kernel 3.19.0-21 and Docker 1.7.0:

Jun 19 10:06:35 E6520-2 systemd[1]: Starting Docker Socket for the API.
Jun 19 10:06:35 E6520-2 systemd[1]: Listening on Docker Socket for the API.
Jun 19 10:06:35 E6520-2 systemd[1]: Started Docker Application Container Engine.
Jun 19 10:06:35 E6520-2 systemd[1]: Starting Docker Application Container Engine...
Jun 19 10:06:35 E6520-2 docker[3779]: time="2015-06-19T10:06:35.917685581+02:00" level=error msg="[graphdriver] prior storage driver \"aufs\" failed: driver not supported"
Jun 19 10:06:35 E6520-2 docker[3779]: time="2015-06-19T10:06:35.917756197+02:00" level=fatal msg="Error starting daemon: error initializing graphdriver: driver not supported"
Jun 19 10:06:35 E6520-2 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jun 19 10:06:35 E6520-2 systemd[1]: Unit docker.service entered failed state.
Jun 19 10:06:35 E6520-2 systemd[1]: docker.service failed.

Relevant parts from /var/log/syslog this morning:

With kernel 3.19.0-21:

Jun 18 10:22:27 E6520-2 systemd[1]: Started Docker Application Container Engine.
Jun 18 10:22:27 E6520-2 systemd[1]: Starting Docker Application Container Engine...
…
Jun 18 10:22:27 E6520-2 docker[891]: time="2015-06-18T10:22:27+02:00" level=warning msg="Udev sync is not supported. This will lead to unexpected behavior, data loss and errors"
Jun 18 10:22:27 E6520-2 kernel: [    7.053225] device-mapper: table: 252:0: thin-pool: unknown target type
Jun 18 10:22:27 E6520-2 kernel: [    7.053229] device-mapper: ioctl: error adding target to table
Jun 18 10:22:27 E6520-2 docker[891]: time="2015-06-18T10:22:27+02:00" level=info msg="+job serveapi(fd://)"
Jun 18 10:22:27 E6520-2 docker[891]: time="2015-06-18T10:22:27+02:00" level=info msg="Listening for HTTP on fd ()"
Jun 18 10:22:27 E6520-2 docker[891]: time="2015-06-18T10:22:27+02:00" level=fatal msg="Shutting down daemon due to errors: error intializing graphdriver: Error running DeviceCreate (CreatePool) dm_task_run failed"
Jun 18 10:22:27 E6520-2 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jun 18 10:22:27 E6520-2 systemd[1]: Unit docker.service entered failed state.
Jun 18 10:22:27 E6520-2 systemd[1]: docker.service failed.

With kernel 3.19.0-20:

Jun 18 10:23:16 E6520-2 docker[1000]: time="2015-06-18T10:23:16+02:00" level=info msg="+job serveapi(fd://)"
Jun 18 10:23:16 E6520-2 docker[1000]: time="2015-06-18T10:23:16+02:00" level=info msg="Listening for HTTP on fd ()"
…
Jun 18 10:23:16 E6520-2 kernel: [    7.009467] aufs 3.x-rcN-20150105
Jun 18 10:23:16 E6520-2 docker[1000]: time="2015-06-18T10:23:16+02:00" level=warning msg="Graphdriver aufs selected. Your graphdriver directory /var/lib/docker already contains data managed by other graphdrivers: devicemapper"
Jun 18 10:23:16 E6520-2 docker[1000]: time="2015-06-18T10:23:16+02:00" level=info msg="+job init_networkdriver()"
…
Jun 18 10:23:17 E6520-2 kernel: [    7.624158] IPv6: ADDRCONF(NETDEV_UP): docker0: link is not ready
Jun 18 10:23:17 E6520-2 systemd-udevd[358]: Could not generate persistent MAC address for docker0: No such file or directory
Jun 18 10:23:17 E6520-2 avahi-daemon[894]: Joining mDNS multicast group on interface docker0.IPv4 with address 172.17.42.1.
Jun 18 10:23:17 E6520-2 avahi-daemon[894]: New relevant interface docker0.IPv4 for mDNS.
Jun 18 10:23:17 E6520-2 avahi-daemon[894]: Registering new address record for 172.17.42.1 on docker0.IPv4.
Jun 18 10:23:17 E6520-2 NetworkManager[895]: nm_device_get_device_type: assertion 'NM_IS_DEVICE (self)' failed
Jun 18 10:23:17 E6520-2 NetworkManager[895]: <info> (docker0): ignoring bridge not created by NetworkManager
…
Jun 18 10:23:17 E6520-2 NetworkManager[895]: <info> devices added (path: /sys/devices/virtual/net/docker0, iface: docker0)
Jun 18 10:23:17 E6520-2 NetworkManager[895]: <info> device added (path: /sys/devices/virtual/net/docker0, iface: docker0): no ifupdown configuration found.
…
Jun 18 10:23:17 E6520-2 systemd[1]: Started ifup for docker0.
Jun 18 10:23:17 E6520-2 systemd[1]: Starting ifup for docker0...
Jun 18 10:23:17 E6520-2 sh[1047]: Unknown interface docker0
Jun 18 10:23:17 E6520-2 kernel: [    7.632620] ip_tables: (C) 2000-2006 Netfilter Core Team
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="-job init_networkdriver() = OK (0)"
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=warning msg="Your kernel does not support cgroup swap limit."
Jun 18 10:23:17 E6520-2 systemd[1]: Scope libcontainer-1000-systemd-test-default-dependencies.scope has no PIDs. Refusing.
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="Loading containers: start."
Jun 18 10:23:17 E6520-2 docker[1000]: ....................................
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="Loading containers: done."
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="docker daemon: 1.6.2 7c8fca2; execdriver: native-0.2; graphdriver: aufs"
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="+job acceptconnections()"
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="-job acceptconnections() = OK (0)"
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="Daemon has completed initialization"

Best Answer

Aufs is no longer included in the Ubuntu kernel package. (modprobe aufs will give an error)

Because overlay is included since 3.18. So you can just use that for docker. (I have no idea about migration.)

Related Question