Создаем override.conf
для сервиса docker
командой systemctl edit docker.service
:
[Service]
ExecStartPre=/usr/bin/env install -m 711 -o root -g root -vd /var/lib/docker_ /var/lib/docker
ExecStartPre=/usr/bin/env mount -t tmpfs none /var/lib/docker
ExecStartPre=/usr/bin/env rsync -a /var/lib/docker_/ /var/lib/docker/
ExecStopPost=/usr/bin/env install -m 711 -o root -g root -vd /var/lib/docker_
ExecStopPost=-/usr/bin/env rsync -a /var/lib/docker/ /var/lib/docker_/
ExecStopPost=/usr/bin/env umount /var/lib/docker
Где:
/var/lib/docker_
- каталог для хранения образов и контейнеров на диске/var/lib/docker
- tmpfs в RAM
Перед запуском сервиса docker
будут создаваться, при необходимости нужные для работы каталоги,
затем монтируется tmpfs
в /var/lib/docker
после чего в этот каталог будет скопировано
содержимое с диска /var/lib/docker_
.
При остановке сервиса все происходи в обратной последовательности, после остановки сервиса docker
данные копируются из tmpfs
на диск, после чего /var/lib/docker
отмонтируется, а все данные
из этого каталога мгновенно уничтожаются.
Таким образом при запуске сервиса автоматически файловая система контейнеров и образов помещается в RAM, а при остановке копируется на диск, чтобы при следующем запуске данные не потерялись.
Comments
comments powered by Disqus