После обновления до докера 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...