Giriş
Podman, arka planda sürekli çalışan bir daemon (servis) gerektirmeyen, OCI uyumlu bir konteyner motorudur. Docker'dan farklı olarak, konteynerleri normal bir kullanıcı süreci olarak çalıştırır; bu da paylaşımlı sunucularda güvenlik risklerini minimize eder. Komut satırı arayüzü Docker ile neredeyse aynıdır, bu sayede mevcut Dockerfile dosyalarınız ve komutlarınız sorunsuz çalışır.
Kurulum Adımları
Podman, Ubuntu'nun resmi depolarında yer almaktadır. Üçüncü taraf PPA eklemeye gerek kalmadan kurulumu gerçekleştirebilirsiniz.
- Paket listesini güncelleyin:
sudo apt update - Podman'i yükleyin:
sudo apt install podman - Kurulumu doğrulayın:
podman --version
Rootless (Kök Yetkisiz) Yapılandırma
Podman'in en büyük avantajı root yetkisi gerektirmemesidir. Kurulum sonrası bu durumu şu komutla kontrol edebilirsiniz:
podman info | grep rootlessEğer 'rootless: true' çıktısını görüyorsanız, sisteminiz konteynerleri kullanıcı yetkileriyle çalıştırmaya hazırdır.
Kullanıcınızın konteyner oluşturabilmesi için /etc/subuid ve /etc/subgid dosyalarında tanımlı olması gerekir. Eğer eksikse şu adımları izleyin:
- Kullanıcıya alt UID/GID aralıklarını atayın:
sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $USER - Değişiklikleri uygulayın:
podman system migrate
Konteyner Yönetimi
Podman ile konteyner çalıştırmak oldukça basittir. Örneğin bir Nginx sunucusu başlatmak için:
podman run -d --name web -p 8080:80 nginxÇalışan konteynerleri listelemek için podman ps, durdurmak için podman stop web komutlarını kullanabilirsiniz.
Docker ile Uyumluluk
Mevcut Docker alışkanlıklarınızı devam ettirmek isterseniz podman-docker paketini yükleyerek docker komutunu Podman'e yönlendirebilirsiniz:
sudo apt install podman-dockerBu işlem, /usr/bin/docker sembolik bağını oluşturarak tüm Docker komutlarınızı Podman üzerinden çalıştırmanızı sağlar. Özellikle CI/CD süreçlerinde bu yapılandırma oldukça kullanışlıdır.
Sorun Giderme
- Kısa isim çözümlenemedi hatası:
/etc/containers/registries.confdosyasını düzenleyerekunqualified-search-registries = ["docker.io"]satırını ekleyin. - Düşük portlara bağlanma hatası: Rootless modda 1024 altındaki portlara bağlanmak için
sudo sysctl net.ipv4.ip_unprivileged_port_start=80komutuyla çekirdek parametresini güncelleyin.


