Apakah Podman Lebih Baik dari Docker?
This work by Muhammad Raihan Widagdo is licensed under CC BY-SA 4.0
Disclaimer: Artikel ini mungkin dapat mengandung opini dari penulis. Pembaca dihimbau untuk membentuk pandangan mereka sendiri berdasarkan informasi yang disajikan dan melakukan riset tambahan jika diperlukan.
Seperti yang kita tahu, konsep kontainerisasi adalah salah satu konsep yang mengubah lanskap pengembangan perangkat saat ini. Docker adalah salah satu yang memudahkan kita dalam membuat dan mengatur kontainer. Docker tidak sendirian dalam menawarkan solusi kontainerisasi, terdapat beberapa solusi lain seperti Podman, lxc, atau lxd. Podman sendiri secara garis besar memiliki konsep yang mirip dengan Docker, tentu saja terdapat perbedaan keduanya. Artikel ini akan berfokus komparasi Podman dan Docker.
Sekilas tentang Docker dan Podman
Docker adalah platform yang paling populer untuk membuat, mengelola, dan menjalankan container.
Docker memiliki arsitektur client-server yang terdiri dari Docker Engine (daemon), CLI (command-line interface), dan Docker Registry (tempat penyimpanan untuk image container). Docker sendiri menggunakan daemon untuk dapat bekerja. Artinya Docker membutuhkan suatu proses yang terus berjalan di host OS untuk dapat bekerja.
Podman adalah alat open-source untuk manajemen kontainer yang mirip dengan Docker yang dibuat oleh Red Hat. Podman sendiri memiliki desain yang berlawanan dengan Docker yaitu tidak membutuhkan daemon untuk dapat bekerja.
Command-line Interface
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c09419b0f1ad localhost/url-shortener:latest /home/app/main 4 months ago Up 17 minutes ago 0.0.0.0:8080->8080/tcp unruffled_chaplygin
89d3c597bddf localhost/landing:latest /home/app/main 4 months ago Up 17 minutes ago 0.0.0.0:8081->8081/tcp admiring_ganguly
$ podman image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/landing latest 1d53e909cd1f 4 months ago 301 MB
localhost/url-shortener latest f294c4c25402 4 months ago 883 MB
docker.io/library/golang alpine3.18 f062eed153cb 4 months ago 231 MB
docker.io/library/alpine latest 1dc785547989 4 months ago 8.02 MB
Docker dan Podman sendiri memiliki CLI yang sama. Siapa pun yang dapat pernah menggunakan Docker akan dapat menggunakan Podman. Bahkan, kita dapat menggunakan alias untuk Podman=Docker.
Arsitektur
Docker dan Podman sendiri memiliki kompabilitas dan bekerja satu sama lain dengan baik karena adanya spesifikasi OCI (Open Container Initiative). Docker menggunakan containerd sebagai “mesin”. Sedangkan Podman menggunakan libpod. Baik containerd dan libpod menggunakan runC. runC adalah sebuah runtime yang compliant dengan Open Container Initiative (OCI). runC berfungsi sebagai program tingkat rendah yang berinteraksi langsung dengan kernel Linux untuk mengelola pembuatan, eksekusi, dan penghancuran kontainer.
Daemon vs Daemonless?
Saya rasa pilihan terbaik dari dua pilihan ini adalah berdasarkan kebutuhan anda. Docker akan menjalankan daemon yang memudahkan anda untuk mengatur dan memulai kontainer secara otomatis ketika host baru saja dinyalakan. Di lain sisi, penggunaan daemon juga membuat penggunaan resource perangkat sedikit terbebani karena Docker harus menjalankan proses daemon dibanding daemonless. Di lihat dari aspek keamanan, banyak pendapat Docker memiliki attack surface yang lebih luas daripada Podman dikarenakan penggunaan daemon.
GUI Feature
Baik Docker dan Podman memiliki aplikasi GUI yang memudahka pengguna yang sedikit “alergi” menggunakan CLI. Docker dengan Docker Desktop dan Podman dengan Podman Desktop. Untuk penggunaan komersial, Docker Desktop diharuskan melakukan subscription berbayar untuk perusahaan dengan lebih dari 250 karyawan atau pendapatan tahunan lebih dari 10 juta USD, sedangkan Podman Desktop sendiri memiliki lisensi open-source, yang artinya dapat digunakan secara bebas dan gratis.
Community Support?
Tidak dapat dipungkiri Docker adalah industry standard. Terdapat banyak sekali resource dan dukungan yang jauh lebih baik untuk Docker. Podman yang baru dirilis tahun 2019 tentu sangat tertinggal dengan Docker yang dirilis dari tahun 2013.
Kesimpulan
Dari beberapa informasi di atas, kita dapat memberikan kesimpulan bahwa Podman tidak lebih baik atau lebih buruk dari Docker. Walaupun begitu, Podman dengan beberapa konsep baru seperti daemonless, memberikan keunggulan tersendiri dibanding Docker. Adanya Podman memberikan pilihan platform alternatif untuk manajemen kontainer selain Docker.