Введение
В этом практическом задании вы научитесь настраивать контейнер Podman для автоматического запуска в качестве пользовательской службы systemd. Это общепринятая и рекомендуемая практика в средах Red Hat Enterprise Linux (RHEL), позволяющая гарантировать, что ваши контейнеризированные приложения будут запущены и доступны сразу после загрузки системы. Выполнив это задание, вы получите практический опыт управления жизненным циклом контейнеров с помощью podman и их интеграции с процессом инициализации systemd, что является одной из основных компетенций системного администратора.
Настройка автоматического запуска контейнера через службу systemd
В этом задании вам предстоит настроить контейнер так, чтобы он автоматически запускался как служба systemd. Это необходимо для обеспечения постоянной работы и доступности ваших сервисов.
Задачи
Ваша цель — запустить веб-сервер Nginx в контейнере Podman и настроить его автоматический запуск при старте системы.
- Создайте и запустите контейнер
podmanна основе образаnginx:latest. - Сгенерируйте файл пользовательской службы
systemdдля этого контейнера. - Включите службу для автоматического запуска от имени пользователя
labex. - Активируйте режим задержки сеанса (lingering) для пользователя
labex, чтобы служба запускалась при загрузке системы даже без активного входа пользователя в систему. - Проверьте, что контейнер работает и веб-сервис Nginx доступен.
Требования
- Для всех задач по управлению контейнерами необходимо использовать
podman. - Образ контейнера должен быть
docker.io/library/nginx:latest. - Контейнер должен называться
my-nginx. - Необходимо пробросить порт
8080хоста на порт80контейнера. - Файл службы
systemdдолжен быть создан с помощью командыpodman generate systemd. - Сгенерированный файл службы должен быть размещен по пути
~/.config/systemd/user/container-my-nginx.service. - Для пользователя
labexдолжен быть включен режим lingering с помощью командыloginctl.
Пример
После выполнения задания вы сможете получить доступ к приветственной странице Nginx, выполнив команду curl http://localhost:8080. Результат должен выглядеть примерно так:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
Резюме
В ходе этого испытания вы научились использовать podman для создания контейнера и генерации пользовательской службы systemd для управления его жизненным циклом. Вы настроили автоматический запуск службы и включили режим lingering, чтобы гарантировать старт приложения при загрузке системы. Этот процесс является фундаментальным для развертывания отказоустойчивых контейнеризированных приложений в RHEL и подобных системах, предоставляя надежную альтернативу устаревшим методам управления.



