Используйте интеграцию Podman и systemd для автоматического запуска контейнерной службы с операционной системой, чтобы она сохранялась при перезагрузке.
В начале 2022 года мне выпала честь написать серию из пяти частей о Podman (см. мой профиль Enable Sysadmin, чтобы найти статьи). Podman — это механизм без демона для разработки, управления и запуска контейнеров, совместимых с Open Container Initiative (OCI). Контейнеры больше не просто вещь для разработчиков; они всё чаще становятся неотъемлемой частью работы системного администратора. Поэтому важно знать, как управлять ими практичным и автоматизированным способом.
Получить шпаргалку по основам Podman.
В этой статье показан один из способов использования возможностей Podman и systemd для создания контейнерного решения, которое автоматически запускается и останавливается вместе с вашей операционной системой. Начну с того, зачем вам может понадобиться что-то подобное.
Сценарий использования
Podman может запускать контейнеры без прав root, поэтому вы можете запускать контейнер, чтобы делать всё, что хотите, от выполнения системной задачи до запуска полного прикладного решения, такого как веб-серверы или базы данных.
Скажем, вам нужны контейнеры, которые запускают эти службы на неопределённый срок. В типичной среде системного администратора привилегированный пользователь настраивает эти службы для запуска при загрузке системы и управляет ими с помощью команды systemctl. Вы можете включить и запустить службу с помощью команды systemctl как обычный пользователь. Эти системные службы запускаются при загрузке системы и останавливаются при выключении системы.
Когда вы вызываете Podman во время выполнения из командной строки, он работает только до тех пор, пока вы находитесь в сеансе (графический интерфейс, текстовая консоль или SSH), и останавливается, когда вы закрываете сеанс. Эта функциональность не идеальна для вашей потребности в том, чтобы служба, размещённая в Podman, сохранялась после перезагрузки. Вот где удобна интеграция Podman и systemd.
Получить шпаргалку по командам systemd.
Согласно документации RHEL 9, с файлами модулей systemd вы можете:
- настроить контейнер или pod для запуска в качестве службы systemd
- определить порядок запуска контейнерных служб и проверить наличие зависимостей (например, убедиться, что запущена другая служба, доступен файл или подключен ресурс)
- управлять состоянием системы systemd с помощью команды systemctl
- создавать переносимые описания контейнеров и подов, используя юнит-файлы systemd
Это примеры использования. Вот шаги настройки.
Прочитать, как Podman 4.4 позволяет сделать systemd лучше для Podman с помощью Quadlet.
Продолжение следует...
Перевод. Автор оригинала: Alexon Oliveira.