Podman dan Buildah di openSUSE Tumbleweed

Ini cuma ulasan pendek di sela-sela kegalauan turing nyepeda.

Masih mengingat beberapa pe-er komunitas, bareng Ish Sookun untuk mengerjakan beberapa tulisan terkait Kubic, dan turunannya. Belum sempat nyolek lagi. Saya mencoba menulis catatan kecil tentang mainan di akhir tahun. Ini sebenarnya merupakan catatan lama, namun tersisih di mesin berbeda.

Balik ke tema, saya sedang coba-coba menggunakan container daemon selain docker.

Podman

What is Podman? Podman is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System. Containers can either be run as root or in rootless mode. Simply put: alias docker=podman.

Containers under the control of Podman can either be run by root or by a non-privileged user. Podman manages the entire container ecosystem which includes pods, containers, container images, and container volumes using the libpod library. Podman specializes in all of the commands and functions that help you to maintain and modify OCI container images, such as pulling and tagging. It allows you to create, run, and maintain those containers created from those images in a production environment.

podman.io

Kira-kira begitu pengertiannya.

Persiapan Lab

Saya mencoba podman di minipc saya dan di laptop dalam vagrant. Step-step berikut saya lakukan dalam vagrant. Berikut Vagrantfile saya:

Vagrant.configure("2") do |config|
  config.vm.box = "opensuse/Tumbleweed.x86_64"
  config.vm.box_version = "1.0.20191231"

  config.vm.define :podman do |podman|
    podman.vm.host_name="podman"
    podman.vm.network "private_network", ip: "192.168.33.99", bridge: "wlan0"
    podman.vm.provider "virtualbox" do |vb|
      vb.memory = "1024"
    end
  end
end

Lanjut dengan vagrant up dan vagrant ssh. Akan login sebagai user vagrant

Bacaan Podman

Memasang Podman

sudo zypper in slirp4netns podman

Rootless

sudo bash -c 'echo 10000 > /proc/sys/user/max_user_namespaces'
sudo bash -c "echo $(whoami):100000:65536 > /etc/subuid"
sudo bash -c "echo $(whoami):100000:65536 > /etc/subgid"

Menjalankan Podman

FYI: ubi=Red Hat universal base image

podman pull registry.access.redhat.com/ubi8/ubi
podman run --name redhat registry.access.redhat.com/ubi8/ubi cat /etc/os-release
podman rm redhat

Podman Cheat Sheet

podman login docker.io
podman search tuanpembual
podman run docker.io/tuanpembual/hello
podman run --rm --name hello -p 8080:80/tcp docker.io/tuanpembual/hello
podman rm hello

Sampe batas ini, ya memang benar kita bisa dengan entengnya membuat alias docker=podman.

Buildah

Bacaan Buildah

Buildah – a tool that facilitates building OCI container images.

Buildah.io

Buildah adalah tool buat bikin container images, dengan beberapa fitur yang menawan, diantaranya:

  • Tidak ada Daemon. Jadi kalo mau build image ya tinggal build aja.
  • Buat image dari nol(scratch) atau dari image yang sudah jadi.
  • Merupakan Build tools external, sehingga memiliki karakter:
    • Ukuran image lebih kecil
    • Membuat lebih aman dengan tidak memasukkan software untuk membuat container (like gcc, make, and dnf) within the resulting image.
    • Membutuhkan resource yang lebih kecil untuk mengirim images.

Buildah is able to operate without Docker or other container runtimes by storing data separately and by including features that let you not only build images, but run those images as containers as well. By default, Buildah stores images in an area identified as containers-storage (/var/lib/containers).

Buildah.io

Kira kira gitu pengantar teorinya.

Memasang Buildah

sudo zypper in buildah

Membuat image dengan Buildah dari Dockerfile

# ls
Dockerfile  myecho
# cat Dockerfile
FROM registry.access.redhat.com/ubi8/ubi
ADD myecho /usr/local/bin
ENTRYPOINT "/usr/local/bin/myecho"
# cat myecho
echo "This container works!"
# chmod 755 myecho
# ./myecho
This container works!

Build Step:

# buildah bud -t tuanpembual/myecho .
STEP 1: FROM registry.redhat.io/ubi8/ubi
STEP 2: ADD myecho /usr/local/bin
STEP 3: ENTRYPOINT "/usr/local/bin/myecho"

Docker format and push

buildah bud --format=docker -t docker.io/tuanpembual/myecho .
buildah push docker.io/tuanpembual/myecho

List images:

buildah images
podman images

Running dan Inspect Images

podman run --rm tuanpembual/myecho
buildah inspect tuanpembual/myecho | less

Dah itu saja dulu. Ngoprek selanjutnya bagaimana menggunakan dua perkakas ini ke Gitlab-CI.

Estu~

2 tanggapan untuk “Podman dan Buildah di openSUSE Tumbleweed

  1. wah menarik. apakah podman bisa sepenuhnya menggantikan docker dalam produksi? gimana perbandingan penggunaan resource-nya dibanding pake docker? untuk buildah ini menarik, sekali..

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.