5

Tried to run recently installed docker on Ubuntu 16.04

systemctl status docker.service

Got error:

level=info msg="libcontainerd: new containerd process, pid: 11293"
level=error msg="[graphdriver] prior storage driver \"aufs\" failed: driver not supported"
level=fatal msg="Error starting daemon: error initializing graphdriver: driver not supported"

Tried to install image-extras:

$ sudo apt-get -y install linux-image-extra-$(uname -r)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package linux-image-extra-4.4.19-040419-generic
E: Couldn't find any package by glob 'linux-image-extra-4.4.19-040419-generic'
E: Couldn't find any package by regex 'linux-image-extra-4.4.19-040419-generic'
1
  • Make sure you have rebooted into the new kernel after installing any upgrades before you run the linux-image-extra-$(uname -r) and verify whether you are running a linux-image-*-generic kernel or some custom offshoot. I've run into the case where there was a superceded update of the kernel I just upgraded to a few days before and they pulled the headers/extra due to a security flaw, so sudo apt-get update && sudo apt-get dist-upgrade then reboot and try to get the latest image-extra.
    – dragon788
    Jul 10, 2017 at 17:05

5 Answers 5

8

Apparently removing the folder isn't the best course of action because you are deleting any containers you had running. The better course of action is installing the linux-image-extras package that corresponds with your current kernel.

sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

sudo modprobe aufs

sudo service docker restart

See https://mymemorysucks.wordpress.com/2016/03/31/docker-graphdriver-and-aufs-failed-driver-not-supported-error-after-ubuntu-upgrade/

2
  • 1
    This definitely solved my problem without damaging anything Jan 5, 2018 at 2:01
  • This seems to be the only safe answer here. I'm running a native kubernetes cluster and wiping a load of containers out would waste a lot of time!
    – barrymac
    Jul 31, 2018 at 13:26
5

I did some research and I found the answer, I was able to fix the issue by using the overlay2 as storage driver, I followed the below link for that: https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/

Below step I took to fix the issue: Stop Docker.

$ sudo systemctl stop docker Copy the contents of /var/lib/docker to a temporary location.

$ cp -au /var/lib/docker /var/lib/docker.bk

Edit /etc/docker/daemon.json. If it does not yet exist, create it. Assuming that the file was empty, add the following contents.

{ "storage-driver": "overlay2" }

Start Docker.

$ sudo systemctl start docker

Verify that the daemon is using the overlay/overlay2 storage driver. $ sudo docker info

After this I was able to run docker container on my "16.04.2 LTS (Xenial Xerus)" sudo docker run -dit ubuntu

Docker CE

For Docker CE, only some configurations are tested, and your operating system’s kernel may not support every storage driver. In general, the following configurations work on recent versions of the Linux distribution:

Linux distribution Supported storage drivers Docker CE on Ubuntu aufs, devicemapper, overlay2 (Ubuntu 14.04.4 or later, 16.04 or later), overlay, zfs

https://github.com/moby/moby/issues/24023

1
  • creating /etc/docker/daemon.json did the job for me. I did choose to set my storage driver to aufs - the inspiration came from this answer.
    – sbglasius
    Dec 21, 2017 at 21:09
4

The problem is that aufs is not supported on kernel 4.0.x

Apparently removing aufs from docker:

sudo rm -rf /var/lib/docker/aufs

resolves the issue.

WARNING!

As @dragon788 mentioned in comment below, this will delete all existing AUFS containers.

Source and big thanks to: https://github.com/docker/docker/issues/14026#issuecomment-128055691

2
  • 2
    Note that this will wipe any existing containers you have if you upgraded from a previous Ubuntu release and had existing AUFS containers. See the numerous followup comments on the linked GitHub issue and other answer on a less destructive way to upgrade.
    – dragon788
    Jul 10, 2017 at 17:06
  • This worked for me, and yes, it deleted the old containers.
    – CTala
    Oct 5, 2017 at 13:12
3

Depending on your kernel version, you can switch to overlay or overlay2. Check your kernel version with uname -a:

  • >= 3.18: use overlay
  • >= 4.0: also overlay2 should be supported

Just update your storage driver in /etc/default/docker with something like:

OPTIONS="  --storage-driver=overlay2"

and restart Docker service.

0

A cold reboot solved the issue for us. Not sure what was corrupted. We could not delete /var/lib/docker/aufs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.