Podman Nedir? Podman vs Docker

Podman vs Docker

Ubuntu 20.04 LTS Üzerine Podman Kurulumu Nasıl Yapılır?

Podman Üzerinde Ansible AWX Nasıl Ayağa Kaldırılır?

Podman Nedir?

Tıpkı docker gibi bir konteyner motorudur. OCI Konteynerların yönetimi, geliştirilmesi ve çalıştırılması gibi işlemler için daemonless çalışan bir üründür. Konteynerlar root olarak veya olmaksızın ayağa kaldırılabilir. Red Hat Linux’ un bir parçasıdır fakat diğer Linux dağıtımları ile de kullanılabilir. Docker komutlarının çoğu podman için çalıştırılabilirdir.

Docker ile daha önce çalıştıysanız Docker’ ın bir Daemon ile çalıştığını biliyorsunuzdur. Docker Daemon tüm gönderilen istekleri Rest API üzerinden dinlemekte ve gerçekleştirmektedir. Yani Docker Daemon çalışmadığı takdirde bir konteyner ayağa kaldırmak mümkün değildir. Aşağıdaki görseli inceleyecek olursak Docker’ ın nasıl çalıştığını anlayabiliriz.

Docker Daemon gönderilen tüm istekleri Rest API üzerinden dinlemekte ve gerçekleştirmektedir. Rest API ise daemon’ ı dış dünyaya bağlayan gelen istekleri dinleyen bir bileşendir. Docker CLI ise son kullanıcının girdi yaptığı bir komut satırı arayüzüdür. Docker Engine tüm bu bileşenlerden oluşmaktadır.

Konteyner teknolojisi Linux kernel’ ında yer alan control groups ve namespaces özellikleri ile ortaya çıkmıştır. Bu özellikler sayesinde uygulamalar izole bir şekilde çalışmaktadır. Docker bu teknolojilere ek olarak yukarıda belirttiğimiz gibi bir Daemon ile çalışmaktadır. Yani bir servis olarak çalışmaktadır. Daemon kapandığında herhangi bir işlem yapılamaz. Kubernetes tarafında çok fazla docker daemonlar crash olduğunda ve problemler meydana geldiğinde akıllara neden docker daemon kullanıyoruz? neden sadece runtime kullanmıyoruz? gibi sorular gelmeye başlamış ve bu noktada podman ürünü ortaya çıkmıştır.Podman, Daemon olmadan yani arka tarafta bir servis olmadan otomatik ayağa kalkmakta ve runtime fonksiyonlarını yerine getirmektedir. Podman’ in kendisi bir runtime ürünüdür.

Docker komutlarının çoğu Podman içinde çalıştırılabilirdir demiştik. Tüm işlemler daemonless ve rootless olarak gerçekleştirebilir. Podman doğrudan image registry, image/container storage ve runC container runtime yardımıyla Linux kernel’ i ile iletişim sağlamaktadır.

· Podman de Docker hub ve Quay.io gibi repository lerden de image çekebilmeniz mümkündür.

· Rootless olarak da çalışabildiğini söylemiştik. Bu noktada podman, komutlarını çalıştıran her kullanıcı için “~/.local/share/containers” dizininde bir repo oluşturmaktadır. Birden fazla kullanıcı container oluşturabilir ve bir registry’ e push edebilir.

· Docker storage olarak “/var/lib/docker“ dizinini kullanmaktaydı fakat podman, “/var/lib/containers” dizinini veya istediğiniz başka bir dizini kullanmanıza olanak tanıyor.

· Podman tarafında Docker’ da olduğu gibi bir servis kullanmak zorunda kalmıyorsunuz.

Ubuntu 20.04 LTS Üzerine Podman Kurulumu Nasıl Yapılır?

Ubuntu 22.04 podman paketlerini içerdiğinden direkt olarak işletim sisteminin varsayılan apt repository’ lerinden

sudo apt update


sudo apt install podman

komutları ile yükleyebilirsiniz.

Ubuntu 20.04 ve 18.04 için öncelikle sisteminize Kubic proje deposu eklemeniz gerekmektedir.

. /etc/os-release

echo “deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /” | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list

curl -L “https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key" | sudo apt-key add -

Depoyu ekledikten sonra podman’ i yüklemeye devam edebilirsiniz.

sudo apt-get update

sudo apt-get -y upgrade

sudo apt-get -y install podman

Kurulumdan sonra, mevcut podman versiyon bilgisini ve podman’ in yapısı ile ilgili bilgileri görüntüleyebilirsiniz.

podman –version

podman info

Podman Üzerinde Ansible AWX Nasıl Ayağa Kaldırılır?

Bu örnekte Quay.io image registry aracı kullanılmıştır. Red Hat’ in bir ürünü olan Quay.io, bir Container Registry aracıdır aynı zamanda image’lar üzerindeki açıkları tarayıp ilgili CVE numaralarının ilişkilendirildiği bir security ürünüdür.

Öncelikle podman’ de Quay.io hesabınıza login olmanız gerekmektedir.

· podman pull quay.io/ansible/awx-ee →İmajı kendi localimize aldık

· podman images →indirilen imajları listeledik

·podman run -dt quay.io/ansible/awx-ee →imajı çalıştırdık

· podman ps -a →ile çalışan imajları listeledik ve containerID sini elde ettik

· podman exec -it f578a286e70b /bin/bash →daha sonra bu containerID ile container’ a bağlandık

Artık Ansible AWX container’ ı içinde istenen değişiklikleri yapabilir, otomatize süreçler ve akışlarınız için ansible’ ın ilgili modüllerini yükleyebilir ve dilediğiniz image registry aracına paketleyip gönderebilirsiniz.