Змінити каталог даних Docker


8

Як я можу змінити каталог даних Docker, де докер зберігає контейнер (або де lxc зберігає контейнер)? У мене на сервері є ssd і мураха на жорсткому диску, я хочу, щоб контейнер був збережений на жорсткому диску. Дякую

Відповіді:


11

Я вважаю, що в цьому посібнику ви матимете хороше пояснення.

Ви можете змінити базовий каталог пам’яті 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: напр. other_args="-g /var/lib/testdir". Якщо є кілька варіантів, обов'язково додайте їх до "". Після перезавантаження (перезапуск сервера докера) Docker повинен використовувати новий каталог.

Використання символьної посилання - ще один метод зміни пам’яті зберігання зображень.

Увага! Ці кроки залежать від того, що ваш поточний / var / lib / docker є фактичним каталогом (а не символьним посиланням на інше місце).

1) Зупинити докер: service docker stop. Переконайтесь, що жоден процес докера не виконується ps faux

2) Докер подвійної перевірки дійсно не працює. Погляньте на поточний каталог докера: 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) Заглянути в структурі каталогів , щоб переконатися зробити це виглядає , як це було до мв: ls /var/lib/docker/(зверніть увагу на косу риску

6) Почніть резервну копію докера service docker start

7) перезавантажте контейнери, вирішіть символьне посилання)


в чому причина 4)? Це потрібно? У моєму випадку я хотів би, щоб файли docker знаходилися на встановленому RAID, а не на завантажувальному розділі.
Роман Мік

9

В останніх версіях Docker в Ubuntu ви будете редагувати /etc/default/daemon.json так:

{
    "data-root": "/new/location"
}

2

Для зміни dataкаталогу в dockerньому потрібно запустити параметр -g /my/data. По своєму /etc/default/dockerя встановив:

DOCKER_OPTS="-g /srv/docker"

Дивіться також мої замітки тут .

Для зміни dataкаталогу в lxcя вставлю /etc/lxc/lxc.conf:

lxc.lxcpath = /srv/lxc



1

Щоб розширити відповідь @ 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 .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.