Ответы:
Я считаю, что в этом руководстве у вас будет хорошее объяснение.
Вы можете изменить базовый каталог хранилища 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.gz
3) Переместите
/var/lib/docker
каталог в новый раздел:mv /var/lib/docker /mnt/pd0/docker
4) Сделать символическую ссылку:
ln -s /mnt/pd0/docker /var/lib/docker
5) Взгляните на структуру каталогов, чтобы убедиться, что она выглядит так же, как и до mv:
ls /var/lib/docker/
(обратите внимание на косую черту в6) Запустите докер обратно
service docker start
7) перезапустите ваши контейнеры, разрешите символическую ссылку)
Для изменения 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 .