Tasks
- Run
nginx in a detached container, name web, port 8080 → 80. - Verify with curl on 127.0.0.1:8080.
- Make the container persistent across reboots with a quadlet file.
- 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"