Настройка автоматического запуска контейнера Podman как пользовательской службы systemd

Red Hat Enterprise LinuxBeginner
Практиковаться сейчас

Введение

В этом практическом задании вы научитесь настраивать контейнер 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 и подобных системах, предоставляя надежную альтернативу устаревшим методам управления.

✨ Проверить решение и практиковаться