После обновления до докера 18.09. все контейнеры недействительны из-за ошибки devicemapper

Сегодня я обновил докер с 18.06 до 18.09 в хосте Debian Stretch. После обновления все наши образы и контейнер "пропали", т.е. docker <command> больше не будет их показывать, но данные в /var/lib/docker не было dockerd -D открыт:

Cannot load container XXX because it was created with another graph driver

Поэтому первое, что я сделал, - понизил докер до последней версии, чтобы проверить, исправляет ли это. Это сработало отчасти. Файл модуля systemd, который работал раньше, не смог запустить службу докера. Оказывается, я должен явно передать -s devicemapper в dockerd сейчас, и я не знаю почему, потому что, по-видимому, обновление до 18.09 сделал /var/lib/docker/overlay2 который я просто должен был удалить, чтобы сделать запуск 18.06, как и раньше.

Поэтому после того, как я подтвердил, что это исправлено в последней версии Docker, я снова обновился до 18.09 и попытался пройти -s devicemapper явно делает трюк здесь. Но с 18.09 демон даже не запускается и жалуется:

Failed to GetDriver graph                     driver=devicemapper error="graphdriver plugins are only supported with experimental mode" home-dir=/var/lib/docker

Я ничего не могу найти о devicemapper быть устаревшим или что-то в этом роде, так что я должен был делать до обновления? Есть ли какой-нибудь общий совет / лучшая практика, чтобы избежать подобных проблем?

1 ответ

На случай, если это кому-нибудь поможет. Я должен был обнулить релиз 18.09, который был загружен через канал обновления для моей установки mint:

sudo apt-get autoremove docker-ce 
sudo rm -rf /etc/docker 
sudo rm -rf /var/lib/docker
sudo apt-get autoremove --purge docker-ce

Затем переустановите перед установкой рабочего докера 18.09:

sudo apt-get install docker-ce

Это переместило мой драйвер хранения в Storage Driver: overlay2 когда это было ранее devicemapper, который, кажется, корень проблемы.

Там нет никаких сомнений, решение этого через /etc/docker/daemon.json настройки, но у меня нет времени, чтобы выяснить, что это, к сожалению.

Очевидно, что вы потеряете все ваши локальные образы Docker, если вы сделаете это /var/lib/docker, поэтому убедитесь, что вы хотите сделать это, прежде чем вставлять.

И да, оригинальный вопрос, вероятно, должен был быть опубликован в SU, а не в SO...

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