Создаем 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