۱. Toolbx: محیط کار جداگانه
Toolbx یک کانتینر Fedora میسازد که پوشهی خانه، کاربر و نمایشگر شما را به اشتراک میگذارد. ابزارهای توسعه را داخل آن نصب کنید تا سیستم اصلی بههم نریزد:
sudo dnf install -y toolbox
toolbox create dev
toolbox enter dev
# inside the toolbox:
sudo dnf install -y gcc make nodejs golang
exitیک نسخهی دیگر از Fedora، مثلاً برای آزمایش نرمافزار روی نسخهی قبلی:
toolbox create --release 44 f44
toolbox list
toolbox rm -f f44۲. Podman بدون root
Podman به daemon نیاز ندارد و کانتینرها با کاربر عادی اجرا میشوند:
podman run -d --name web -p 8080:80 docker.io/library/nginx:stable
podman ps
curl -I http://127.0.0.1:8080
podman logs webکاربر عادی پورتهای زیر ۱۰۲۴ را نمیتواند باز کند. از 8080 استفاده کنید و پراکسی را جلوی آن بگذارید.
۳. اجرای خودکار با Quadlet
بهجای podman generate systemd (که منسوخ شده)، یک فایل .container بسازید:
mkdir -p ~/.config/containers/systemd
cat > ~/.config/containers/systemd/web.container <<'EOT'
[Container]
Image=docker.io/library/nginx:stable
PublishPort=8080:80
Volume=%h/site:/usr/share/nginx/html:ro,Z
AutoUpdate=registry
[Service]
Restart=always
[Install]
WantedBy=default.target
EOT
mkdir -p ~/site && echo '<h1>Fedora</h1>' > ~/site/index.html
podman rm -f web
systemctl --user daemon-reload
systemctl --user start web
systemctl --user status web --no-pagerبرچسب :Z در Volume برچسب SELinux پوشه را برای کانتینر درست میکند. بدون آن کانتینر به فایلها دسترسی ندارد.
برای اینکه سرویس بدون ورود کاربر هم بعد از راهاندازی مجدد اجرا شود:
sudo loginctl enable-linger "$USER"۴. بهروزرسانی خودکار ایمیج
systemctl --user enable --now podman-auto-update.timer
podman auto-update --dry-run