Я планирую переместить данные Docker (образы и контейнеры) на отдельный диск, так как они занимают много места.
Насколько я знаю, я могу переместить его /var/lib/docker
на отдельный диск и создать на него мягкую ссылку. Но я читал, что BTRFS — лучший вариант файловой системы для docker.
Но я подозреваю, что недостаточно отформатировать внешний диск в BTRFS и переместить на него существующую папку. Как я вижу, содержимое этой папки зависит от используемой файловой системы.
Как правильно переместить (пересоздать) папку Docker (образы и контейнеры) на внешний диск с другой файловой системой?
решение1
Как вы сказали, простое перемещение или копирование образов/контейнеров docker с диска AUFS по умолчанию на диск, отформатированный в BTRFS, не сработает. Поэтому в качестве первого шага вы можете зафиксировать все свои контейнеры как образы и использовать docker save
команды для сохранения образов в виде файлов .tar, а затем, как только вы подготовите docker к использованию btrfs, вы запустите docker load
загрузку образов в новый драйвер хранилища.
Шаги будут примерно следующими - это то, что я сделал на своем компьютере с Ubuntu 14.10 -
- Сохраните ваши изображения
docker save IMAGEID > /tmp/redis.tar
- Подготовка btrfs
mkfs.btrfs /dev/sdb mkdir /var/lib/docker-btrfs монтируем /dev/sdb /var/lib/docker-btrfs/
- Остановите Docker, настройте Docker на использование BTRFS и запустите его.
остановка сервисного докера docker -d -s btrfs --graph="/var/lib/docker-btrfs" -H unix:///var/run/docker.sock
Вышеуказанный шаг также можно выполнить, изменив /etc/default/docker.
- Загрузите изображения.
загрузка докера --input /tmp/redis.tar
Вы должны иметь возможность увидеть изображения и запустить контейнеры отсюда. Для контейнеров вы также можете попробовать методы export
и import
, хотя я никогда не пробовал этот.