Mencoba Podman Sebagai Pengganti Docker

2 min read

Disclaimer
Saya bekerja di AWS, semua opini adalah dari saya pribadi. (I work for AWS, my opinions are my own.)
Podman Sebagai Pengganti Docker
Podman Logo (Sumber: Podman.io)

TeknoCerdas.com – Salam cerdas untuk kita semua. Selama beberapa tahun terakhir Docker menjadi sebuah defacto ketika menjalankan container. Pada tulisan ini TeknoCerdas akan membahas bagaimana menggunakan Podman sebagai pengganti Docker.

Podman adalah sebuah utilitas untuk membuat dan menjalankan container berdasarkan standard Open Container Initiative (OCI). Docker container termasuk OCI sehingga Podman dapat digunakan sebagai pengganti Docker.

Penggagas atau pencipta dari Podman adalah perusahaan open source terkemuka yaitu Red Hat. Mereka sepertinya mengembangkan Podman sebagai pengganti Docker pada layanan cloud mereka yaitu OpenShift.

Perbedaan Podman dan Docker

Sebelum menggunakan Podman sekilas akan dibahas apa yang menjadi perbedaan utama antara Podman dan Docker.

Dua perbedaan utama antara Podman dan Docker adalah:

  1. Podman tidak memerlukan daemon untuk menjalankan container
  2. Secara default Podman tidak memerlukan akses root

Dua perbedaan utama diatas hal yang menjadikan Podman relatif lebih aman secara arsitektur. Karena tidak adanya daemon yang perlu dijalankan dan tidak perlu root untuk menjalankan container kecuali konfigurasi tertentu yang spesifik.

Apa yang dapat dilakukan Docker juga dapat dilakukan pada Podman. Sehingga pengguna dapat melakukan alias perintah:

$ alias docker=podman

Dan hampir dipastikan semuanya dapat bekerja. Hal yang belum ada pada Podman adalah utilitas Docker Compose. Saat ini tidak ada cara tunggal untuk dapat menduplikasi cara kerja Docker Compose kecuali dengan beberapa konfigurasi manual.

Instalasi Podman pada Ubuntu 20.04

Dalam percobaan yang TeknoCerdas lakukan sistem operasi yang digunakan adalah Ubuntu 20.04. Paket Podman tidak tersedia secara default pada repository Ubuntu. Untuk itu digunakan repository dari Project Kubic.

$ source /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 -
$ sudo apt-get update
$ sudo apt-get -y install podman

Setelah proses instalasi selesai lakukan verifikasi bahwa Podman dapat dijalankan.

$ podman info

Untuk sistem operasi atau distribusi Linux yang lain pengguna dapat merujuk pada halaman instalasi Podman.

Menjalankan Container pada Podman

Dalam contoh menjalankan container pada Podman TeknoCerdas akan menggunakan images “hello-world” dari Docker registry. Hal menarik dari Podman adalah secara default image akan dicari pada registry milik Red Hat jika tidak ditemukan ia akan fallback ke Docker registry.

Jadi tidak perlu khawatir jika daftar image pada registry podman di Red Hat sedikit karena Podman juga menggunakan Docker registry.

Cara menjalankan pun sama dengan docker. Berikut perintahnya.

$ podman run hello-world
Trying to pull docker.io/library/hello-world...
Getting image source signatures
Copying blob 0e03bdcc26d7 done                                                                                                                                                       
Copying config bf756fb1ae done                                                                                                                                                       
Writing manifest to image destination                                                                                                                                                
Storing signatures

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Dapat dilihat bahwa tidak ada perbedaan cara menjalankan container antara Podman dan Docker. Sekarang coba jalankan perintah untuk melihat image.

$ podman image ls
REPOSITORY                     TAG     IMAGE ID      CREATED       SIZE
docker.io/library/hello-world  latest  bf756fb1ae65  7 months ago  20 kB

Dapat dilihat repository yang digunakan menggunakan image dari Docker dapat dilihat dari indikasi prefix dari domain docker.io.