RHCSAv10 · RHEL 10

Exercises

Exercise: persistent web container

updated 2026-10-19 by seed

Tasks

  1. Run nginx in a detached container, name web, port 8080 → 80.
  2. Verify with curl on 127.0.0.1:8080.
  3. Make the container persistent across reboots with a quadlet file.
  4. Make sure it runs even with no session open (linger).

Verify

podman ps --format '{{.Names}} {{.Ports}}'
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080   # 200
systemctl --user is-active web.service                            # active
loginctl show-user "$USER" -p Linger                             # Linger=yes

Solution

podman run -d --name web -p 8080:80 docker.io/library/nginx
mkdir -p ~/.config/containers/systemd
cat > ~/.config/containers/systemd/web.container <<'EOF'
[Unit]
Description=nginx web
[Container]
Image=docker.io/library/nginx
PublishPort=8080:80
[Install]
WantedBy=default.target
EOF
podman rm -f web
systemctl --user daemon-reload
systemctl --user enable --now web.service
loginctl enable-linger "$USER"