Docker’ın tasarımı istemci-sunucu tabanlı bir tasarımdır, oysa Podman arka plan programı bağımlılığını hariç tutar.

Resim-1

Docker, libraries ve dependencies’da dahil olmak üzere uygulamaların container içinde güvenli bir şekilde paketlendiği bir container platformdur. Bir Docker container, sanal bir makineye benzer ve Docker containers, sistemle aynı Linux kernel paylaşır.

Podman’e geçiş sırasında ortaya çıkan bazı sorunların nasıl yönetileceğini görebiliriz. Docker CLI ve Docker arka plan programı, temel Docker yapı taşlarıdır.

Docker CLI, kayıt defterinden push/pull görüntüsünü yürüten Docker arka plan programına komutlar gönderir. Arka plan programı daha sonra görüntülerin kopyalarını local container yapar ve saklar.

Registries, containers, images ve kernel ile ilgili tüm işler Docker ile yapılır. Docker CLI, arka plan programından bu işlevi sizin adınıza gerçekleştirmesini ister.

*Tek bir hata noktası, tek bir işleme atfedilebilir.
*Bu süreç, tüm alt süreçlerin (yani, çalışan container’ların) sahibidir.
*Docker arka plan programında herhangi bir hata varsa, tüm alt süreçler kaybolur.
*Containers inşa etmek güvenlik açıklarına yol açabilir.
*Aynı full root yetkisi, tüm Docker kullanıcı işlemleri tarafından yürütülmelidir.

Docker, her şeyi yapmaya çalışan devasa bir araçtır ki bu genellikle BT’deki en iyi yaklaşım değildir. Daha güvenli ve daha özel araçlar daha avantajlıdır.

Docker’da arka planda çalışan arka plan programı endişe kaynağı olmuştur. Docker’ı CLI’de çalıştırmak, iletişimin her zaman arka plan programı ile olmasını gerektirir.

Podman’in başlıca avantajları;
Docker’ın aksine, Podman tek bir başarısızlık noktasına dayanmaz.

Docker arka planda çalışan bir arka plan programına bağlı olduğundan, background ilgili bir sorun ortaya çıktığında containers yönetimi durur. Bu başarısızlık noktası bu nedenle potansiyel bir sorun haline gelir. Podman ise, container’ları yönetmek için bir arka plan programına ihtiyaç duymadan doğrudan sistem üzerindeki talimatları yürütür ve çalıştırır. Podman yürütmenin Docker’a göre iki büyük avantajı vardır. Podman nonroot olarak çalıştırılabilir.

Docker arka plan programı, bir Linux system root olarak çalışır. Bu, tek başına Docker API’sini ortaya çıkardığı veya bu kullanıcılara sistemde root ayrıcalıkları sağlayan Docker grubuna bir kullanıcı eklediği durumlar dışında mutlaka bir sorun değildir. Buna karşılık, Podman root veya nonroot olarak çalışabilir.

Podman’i rootless’siz çalıştırma;
Podman gelişmiş güvenlik sağlar. Podman kapsamındaki hemen hemen tüm containers işlevleri, root veya ayrıcalığı olmayan bir kullanıcı tarafından başarıyla çalıştırılabilir. Bu büyük bir avantajdır, çünkü containers farklı ayrıcalıklara sahip farklı kullanıcılarla çalıştırabilirsiniz. Podman ile Docker’ın istemci/sunucu modeli, Podman’ın geleneksel modeliyle değiştirilir. Podman, containers çalıştırırken ek bir yalıtım katmanıyla sonuçlanan, ad alanlarını kullanarak UID ayrımı uygulamada etkilidir. Podman, bir containers motoru olarak aynı host birlikte düzenlenmiş Açık container Girişimi (OCI) containers, container gruplarını geliştirir, yönetir ve çalıştırır. Genel olarak, Podman daha az disk alanı kaplar, daha hızlı ve daha verimlidir ve Docker’a daha az bağımlılık gerektirir. Linux 8 ve diğer kurumsal sınıf Linux sistemleri, varsayılan konteyner olarak Podman ile iyi yapılandırılmıştır.

Podman’in ek avantajları ;

*Podman, popüler container kayıtlarını (Docker Hub veya Quay.io gibi) kullanabilir. Bunun nedeni, Docker ve Podman tarafından oluşturulan görüntülerin OCI standardı ile birleşmesidir.
*Podman, arka plan programı olmayan işlem nedeniyle arka planda çalışan kapsayıcıları desteklemek için system entegrasyonunu kullanır.
*Kullanıcılar Podami oluşturabilir ve yönetebilir, böylece iş yükünün Kubernetes’e ikinci geçişini ve Podman container düzenlenmesini kolaylaştırır.

Docker’dan Podman’e geçiş yapmak kolaydır:
*Docker ile kullandığınız komutlar Podman için aynıdır.
*Docker görüntüleri Podman ile uyumludur.
*Podman container ve görüntü storage konumlarının Docker’dakilerden farklı olduğunu unutmayın.

Container teknolojisini kullanan yazılım geliştirme çağında Docker, OpenShift, Rancher ve Tanzu gibi Kubernetes dağıtımlarıyla container yönetimi için Kubernetes’i kullanan en yaygın araçtır. Docker, kişisel bilgisayarlardan IBM LinuxONE gibi host bilgisayarlarına ve Windows, Linux ve MacOS gibi kabul edilen işletim sistemlerine kadar çoğu platform için kullanılabilir.

Bu nedenle, geliştiriciler genellikle alternatif araçlar arar ve Podman’in kullanışlı olduğu yer burasıdır. Verilmiş, Docker, Podman’in doğrudan değiştiremeyeceği birçok özelliğe sahiptir.