Ответы:
Я считаю, что в этом руководстве у вас будет хорошее объяснение.
Вы можете изменить базовый каталог хранилища Docker (куда направляются контейнер и изображения), используя опцию -g при запуске демона Docker.
Ubuntu / Debian: отредактируйте ваш
/etc/default/dockerфайл с-gопцией:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"Fedora / Centos: отредактируйте
/etc/sysconfig/dockerи добавьте-gопцию в переменную other_args: ex.other_args="-g /var/lib/testdir", Если есть несколько вариантов, убедитесь, что вы заключили их в "". После перезапуска (перезапуск службы Docker) Docker должен использовать новый каталог.Использование символической ссылки - это еще один способ изменить хранилище изображений.
Внимание. Эти шаги зависят от того, является ли текущий каталог / var / lib / docker действительным каталогом (а не символической ссылкой на другое местоположение).
1) Стоп докер
service docker stop. Убедитесь, что процесс docker не запущен ps faux2) Докер двойной проверки действительно не работает. Взгляните на текущий каталог докеров: ls
/var/lib/docker/2б) Сделать резервную копию -
tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz3) Переместите
/var/lib/dockerкаталог в новый раздел:mv /var/lib/docker /mnt/pd0/docker4) Сделать символическую ссылку:
ln -s /mnt/pd0/docker /var/lib/docker5) Взгляните на структуру каталогов, чтобы убедиться, что она выглядит так же, как и до mv:
ls /var/lib/docker/(обратите внимание на косую черту в6) Запустите докер обратно
service docker start7) перезапустите ваши контейнеры, разрешите символическую ссылку)
Для изменения dataкаталога в dockerнем необходимо запустить опцию -g /my/data. По моему /etc/default/dockerя установил:
DOCKER_OPTS="-g /srv/docker"
Смотрите также мои заметки здесь .
Чтобы изменить dataкаталог, lxcя вставил /etc/lxc/lxc.conf:
lxc.lxcpath = /srv/lxc
Чтобы расширить ответ @ MattK:
Документация Docker по управлению демоном Docker предполагает, что независимый от платформы способ сделать это:
отредактируйте файл /etc/docker/daemon.json, чтобы он содержал строку
{
"data-root": "/mnt/docker-data",
(...)
}
где /mnt/docker-dataнаходится каталог, в котором вы хотите разместить образы и контейнеры докера.
затем
sudo systemctl restart docker
Вы можете проверить, работает ли это, запустив
docker info
и ищите содержимое строки, начинающейся с Docker Root Dir:.
См. Также https://stackoverflow.com/a/50217666/2209313 и https://unix.stackexchange.com/q/452368/36043 .