Перейти к содержанию

Как изменить директорию с данными для Docker

Системы контейнеризации Docker и LXC являются основой для работы Optimacros.

Для более безопасного использования Optimacros, советуем их директории выносить из раздела root (/).

Docker

По умолчанию директория для Docker /var/lib/docker В данной директории хранятся все контейнеры, тома и образы.

Для изменения этой директории есть разные варианты, больше информации можно получить в интернете, мы взяли по нашему мнению наиболее правильное решение.

Наш вариант проверен на Ubuntu 18.04 и ALT Server 9.

! Останавливаем все остальные запущенные контейнеры.

Проверить список контейнеров Docker, можно командой:

docker ps -a

Info

Если у вас работают LC контейнеры, то останавливать их нужно командой:

./manage stop 

из папки с установленным LC.

Останавливаем сервис.

systemctl stop docker

Warning

Внимательно смотрим на вывод после выполнения команды. Можно еще после проверить состояние службы через команду:

systemctl status docker

В выводе может присутствовать информация что служба не остановлена так как ее остановку блокирует docker.socket и в этом случае, сначала останавливаем docker.socket:

systemctl stop docker.socket

После чего повторно пробуем остановить сервис:

systemctl stop docker

Копируем директорию.

cp -rp /var/lib/docker /om/docker

Временно архивируем оригинальную директорию.

mv /var/lib/docker /var/lib/docker.old

Открываем файл с глобальными настройками сервиса.

vim /etc/docker/daemon.json

Вставляем следующее содержимое, предварительно заменим значение параметра data-root на новую директорию докер.

Info

Возможно файл уже существует и содержит JSON, в таком случае добавляем в существующий JSON, параметр data-root с значением новой директории докер

{
    "data-root": "/om/docker"
}

Запускаем сервис.

systemctl start docker

Проверяем результат.

docker info | grep Root

Если у вас был установлен LC, то запускаем его командой ./manage start из папки с LC.

Если у вас был установлен LC и при его старте вы получаете ошибки отсутствия образов docker, попробуйте запустить инсталлятор LC и пройти процесс обновления, он исправит эту проблему и установит образы уже в новую директорию docker.

Если все нормально, можно удалить архивную папку.

Warning

Внимание, неправильное использование команды rm -rf может привести к повреждению Операционной Системы.

rm -rf /var/lib/docker.old