![Переместить данные Docker (образы и контейнеры) на отдельный диск с другой ФС](https://rvso.com/image/657391/%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D1%82%D1%8C%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20Docker%20(%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D1%8B%20%D0%B8%20%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D1%8B)%20%D0%BD%D0%B0%20%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%B8%D1%81%D0%BA%20%D1%81%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9%20%D0%A4%D0%A1.png)
Я планирую переместить данные 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
, хотя я никогда не пробовал этот.