Назад | Перейти на главную страницу

Перенести данные докеров (образы и контейнеры) на отдельный диск с другой FS

Я планирую переместить данные докеров (образы и контейнеры) на отдельный диск, поскольку они требуют много места.

Насколько я знаю, я могу двигаться /var/lib/docker разделить диск и создать на него софт ссылку. Но я читал, что BTRFS - лучший вариант файловой системы для докеров.

Но я подозреваю, что недостаточно отформатировать внешний диск в BTRFS и переместить в него существующую папку. Как я вижу, содержимое этой папки зависит от используемой файловой системы.

Как правильно переместить (воссоздать) папку докеров (изображения и контейнеры) на внешнем диске с другой файловой системой?

Как вы заявили, простое перемещение или копирование образов / контейнеров докеров со стандартного AUFS на диск, отформатированный в BTRFS, не сработает. Итак, в качестве первого шага вы можете зафиксировать все свои контейнеры как изображения и использовать docker save команды для сохранения изображений в виде файлов .tar, а затем, когда вы подготовили докер для использования btrfs, вы запускаете docker load для загрузки изображений в новый драйвер хранилища.

Шаги будут примерно следующими - это то, что я сделал в своем Ubuntu 14.10.

  • Сохраните ваши изображения
    docker save IMAGEID > /tmp/redis.tar
  • Подготовить btrfs
 mkfs.btrfs /dev/sdb
 mkdir /var/lib/docker-btrfs
 mount /dev/sdb /var/lib/docker-btrfs/
  • Остановите докер, настройте докер на использование btrfs и запустите его.
service docker stop
docker -d -s btrfs  --graph="/var/lib/docker-btrfs"  -H unix:///var/run/docker.sock

Вышеупомянутый шаг также можно выполнить, изменив / etc / default / docker.

  • Загрузите изображения.
docker load --input /tmp/redis.tar

Отсюда вы должны увидеть изображения и запустить контейнеры. Для контейнеров вы также можете попробовать export и import методы, я никогда не пробовал этот.