Uncategorized

Docker Container’larını Podman’a Taşımak

Geliştiriciler ve sistem yöneticileri için uygulamaların izole biçimde çalıştırılması, kaynak kullanımının optimize edilmesi ve taşınabilirliğin artırılması büyük önem taşır. Bu alandaki liderliği uzun süre Dockerelinde bulundurdu. Ancak açık kaynak topluluklarının desteği ve Red Hat’in katkılarıyla Podman, güvenlik odaklı yapısı ve kolay yönetim özellikleri sayesinde güçlü bir rakip olarak öne çıkmaktadır.

Podman Nedir?

Podman , Docker benzeri şekilde container oluşturup yönetmeni sağlayan açık kaynaklı bir teknolojidir. Fakat en önemli farkı, sürekli çalışan bir arka plan servisine ihtiyaç duymaması ve root yetkisi olmadan çalışabilmesidir. Bu sayede sistem hem daha güvenli hem de daha istikrarlı bir yapıya kavuşur.

Podman’ın Öne Çıkan Avantajları

Podman Desktop sürümü, Docker kullanıcılarının geçiş sürecini kolaylaştırmak amacıyla geliştirilmiştir. Uygulama, Docker ve Podman container’larını aynı pencerede yönetmeni, başlatmanı ve durdurmanı sağlar. Böylece iki farklı motor arasında geçiş yapmak zahmetsiz hale gelir.

Kolay Yönetim Özelliği

Podman Desktop, Docker dahil olmak üzere farklı container motorlarını tek bir platformdan yönetmeyi mümkün kılar.

Docker Uyumluluk Modu

Podman, Docker ile aynı komut setini destekleyecek şekilde geliştirilmiştir. Bu sayede Docker CLI komutlarını değiştirmeden kullanabilirsin. Bazı uygulamalar Docker soketine erişmek istediğinde, Podman uyumluluk modu bu erişimi taklit ederek sistemin Docker ortamında çalışıyormuş gibi davranmasını sağlar.

Compose Desteği

Docker Compose dosyaları, Podman ile de çalıştırılabilir. Bunun için podman-compose aracı kullanılır.
Eğer Docker’dan taşıma yapıyorsan, mevcut docker-compose.yml dosyan doğrudan Podman ortamında da kullanılabilir.

Kubernetes Entegrasyonu

Podman, Kubernetes YAML dosyalarıyla doğrudan çalışabilir. Bunun anlamı, bir container veya pod tanımını kolayca Kubernetes kaynaklarına dönüştürebilmek demektir.

Podman Desktop arayüzünde, oluşturduğumuz container’ı tek tıkla bir Kubernetes YAML çıktısına çevirebilir veya var olan bir YAML dosyasını doğrudan çalıştırabiliriz.

Rootless Çalışma Yapısı

Docker genellikle root yetkileriyle çalıştığı için güvenlik açısından bazı riskler taşır. Podman ise rootless modu sayesinde container’ları kullanıcı düzeyinde çalıştırır.

Yeniden köksüz moda dönmek içinse şu komutu kullanabiliriz.

Docker Servislerini Podman’a Taşıma Yöntemi

Docker’dan Podman’a geçiş yaparken mevcut servislerin taşınması kolay bir süreçtir. Aşağıdaki adımları izleyerek bu işlemi sorunsuz şekilde tamamlayabiliriz.

Aktif Container’ları Belirleme

İlk adım olarak, Docker sisteminde çalışan tüm container’ları listeleyip not alalım. Böylece taşınacak servislerin tam listesini çıkarabiliriz.

Docker Image’larını Dışa Aktarma

Her container’ın kullandığı imajları .tar dosyasına kaydedelim.

Podman Üzerine İçe Aktarma

Daha önce dışa aktardığın bir imajı Podman ortamına eklemek için aşağıdaki komutu kullanabiliriz. Bu komut, belirtilen .tar dosyasını sisteme yükler ve kullanıma hazır hale getirir.

Container’ları Yeniden Oluşturalım

Podman üzerinde aynı container’ı yeniden çalıştır.

Compose Projelerini Podman’a Taşıyalım

Docker Compose ile oluşturulmuş projeleri Podman üzerinde de kolayca çalıştırabiliriz. İlgili paketi yükleyip, projeyi başlatalım.

Sık Sorulan Sorular

Podman’a geçmek için Docker kurulu olması gerekir mi?

Podman tamamen bağımsız bir container motorudur ve Docker olmadan da çalışabilir. Ancak eğer daha önce Docker kullanıyorsan, geçiş sürecinde mevcut yapılarını test etmek veya eski Compose dosyalarını karşılaştırmak için Docker kurulumunu korumak işini kolaylaştırır.

Docker kurulumunun nasıl yapıldığını adım adım öğrenmek isterseniz, ayrıntılı rehberimize göz atabilirsiniz.
👉 Windows, Linux ve macOS’ta Docker ve Docker Compose Kurulumu

Rootless Mod Nedir, Avantajları ve Sınırları Nelerdir?

Podman’ın en önemli farklarından biri, container’ları root yetkisi olmadan çalıştırabilmesidir. Rootless modda düşük portlar gerekiyorsa ya rootful moda geçin ya da iptables/firewall yönlendirmesi kullanın.

“Rootless Docker’dan bile güvenli, çünkü arka planda servis gerektirmiyor.”
🔗 Reddit

Başka biri de ekliyor:

Podman’a geçişte en sık yaşanan sorunlar nelerdir?

podman-compose ile uyumsuzluk, volume izinleri ve ağ bağlantı hataları sık görülür. Bazı Docker pluginleri Podman’da desteklenmez. Geçiş öncesi container’ları podman run ile manuel test etmek sorunları önler.

Podman’a geçmek için Docker kurulu olmalı mı?

Podman tamamen bağımsız çalışır ve Docker gerektirmez. Ancak eski Docker container’larını taşıyorsan önce docker save ile image’ları dışa aktarıp podman load komutuyla içe aktarabilirsin. İki sistem aynı anda kurulu olabilir ama zorunlu değildir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir