Не удается запустить докер в Ubuntu 16.04 с ошибкой не поддерживаемого драйвера

Пытался запустить недавно установленный докер на Ubuntu 16.04

systemctl status docker.service

Получил ошибку:

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"

Пытался установить 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'

5 ответов

Решение

Очевидно, что удаление папки - не лучший способ действий, потому что вы удаляете все контейнеры, которые у вас были. Лучше всего установить пакет linux-image-extras, соответствующий вашему текущему ядру.

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

sudo modprobe aufs

sudo service docker restart

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

Я провел некоторое исследование и нашел ответ. Я смог решить проблему, используя оверлей2 в качестве драйвера хранилища. Для этого я воспользовался следующей ссылкой: https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/

Ниже шаг, который я сделал, чтобы решить проблему: Остановите Докер.

$ sudo systemctl stop docker Скопируйте содержимое / var / lib / docker во временную папку.

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

Отредактируйте /etc/docker/daemon.json. Если его еще нет, создайте его. Предполагая, что файл был пуст, добавьте следующее содержимое.

{"storage-driver": "overlay2"}

Запустите Docker.

$ sudo systemctl start docker

Убедитесь, что демон использует драйвер хранилища overlay/overlay2. Информация о докере $ sudo

После этого я смог запустить Docker-контейнер на моем "16.04.2 LTS (Xenial Xerus)" sudo docker run -dit ubuntu

Докер СЕ

Для Docker CE тестируются только некоторые конфигурации, и ядро ​​вашей операционной системы может не поддерживать каждый драйвер хранилища. Как правило, в последних версиях дистрибутива Linux работают следующие конфигурации:

Распределение Linux Поддерживаемые драйверы хранилища Docker CE на Ubuntu aufs, devicemapper, overlay2 (Ubuntu 14.04.4 или новее, 16.04 или новее), оверлеи, zfs

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

Проблема в том, что aufs не поддерживается в ядре 4.0.x

Видимо удаление aufs из докера:

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

решает проблему.

ПРЕДУПРЕЖДЕНИЕ!

Как @dragon788 упоминается в комментарии ниже, это удалит все существующие контейнеры AUFS.

Источник и большое спасибо: https://github.com/docker/docker/issues/14026

В зависимости от версии вашего ядра, вы можете переключиться на overlay или же overlay2, Проверьте версию вашего ядра с uname -a:

  • >= 3.18: использовать overlay
  • >= 4.0: также overlay2 должны быть поддержаны

Просто обновите драйвер хранилища в /etc/default/docker с чем-то вроде:

OPTIONS="  --storage-driver=overlay2"

и перезапустите сервис Docker.

Холодная перезагрузка решила проблему для нас. Не уверен, что было повреждено. Мы не смогли удалить /var/lib/docker/aufs.

Другие вопросы по тегам