Как я могу изменить каталог данных Docker, где Docker сохраняет контейнер (или где LXC сохраняет контейнер)? На моем сервере есть ssd и жесткий диск, и я хочу, чтобы контейнер был сохранен на жестком диске. Благодаря
Для изменения data
каталог в docker
, это должно быть выполнено с опцией -g /my/data
. В моем /etc/default/docker
я установил:
DOCKER_OPTS="-g /srv/docker"
См. также мои примечания здесь .
Для изменения data
каталог в lxc
я вставил /etc/lxc/lxc.conf
:
lxc.lxcpath = /srv/lxc
Я полагаю, что в этом руководстве у Вас будет хорошее объяснение.
Можно изменить каталог базы хранения Докера (куда контейнер и изображения идут), использование-g опции при запуске демона Докера.
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 переменной:напр.other_args="-g /var/lib/testdir"
. Если существует больше чем одна опция, удостоверьтесь, что Вы включаете их в "". После перезапуска (сервисный перезапуск докера) Докер должен использовать новый каталог.Используя символьную ссылку другой метод для изменения устройства хранения данных изображения.
Осторожность - Эти шаги зависят от Вашего текущего/var/lib/docker быть фактическим каталогом (не символьная ссылка на другое местоположение).
1) Докер остановки:
service docker stop
. Проверьте, что никакой процесс докера не выполняет поддельный PS2) Проверьте докера дважды, действительно не работает. Смотрите на текущий каталог докера: ls
/var/lib/docker/
2b), Делают резервное копирование -
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) перезапустите свой containersresolve символьная ссылка),
Обновите до докера 1.13.0.
из информации о версии:
- New
The storage location of the Linux volume can now be moved
Подробно остановиться на ответе @MattK:
документация Докера относительно управления демоном Докера предполагает, что независимый от платформы способ сделать это:
редактируют/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.
В более свежих версиях Докера на Ubuntu Вы отредактируете/etc/default/daemon.json как так:
{
"data-root": "/new/location"
}