GNU/Linux >> Belajar Linux >  >> Debian

Cara Menginstal Podman di Debian 11

Dikembangkan oleh RedHat, Podman adalah mesin kontainer tanpa daemon sumber terbuka dan gratis yang dirancang untuk menjadi pengganti drop-in untuk mesin runtime Docker yang populer. Sama seperti Docker, ini memudahkan untuk membangun, menjalankan, menyebarkan, dan berbagi aplikasi menggunakan gambar wadah dan wadah OCI ( Open Container Initiative ). Podman menggunakan ruang nama pengguna dan jaringan dan Dibandingkan dengan Docker, Podman dianggap lebih terisolasi dan aman. Sebagian besar perintah di Docker akan berfungsi di Podman. jadi jika Anda terbiasa menjalankan perintah Docker, menggunakan podman akan sangat mudah.

Dalam panduan ini, kita mempelajari cara memasang podman di Debian 11 Bullseye.

Instal Podman di Debian 11

Paket podman, perpustakaan, dan dependensi sudah dihosting di repositori resmi Debian. Oleh karena itu Anda dapat dengan mudah menginstal podman menggunakan manajer paket APT.

Pertama, perbarui daftar paket:

$ sudo apt update

Selanjutnya install engine container podman sebagai berikut:

$ sudo apt install podman

Saat diminta untuk melanjutkan, ketik 'Y' dan tekan ENTER.

Untuk memverifikasi versi Podman yang diinstal, jalankan:

$ podman --version

Untuk mengumpulkan lebih banyak detail tentang mesin kontainer podman, jalankan perintah:

$ sudo podman info

Anda akan melihat serangkaian keluaran yang menampilkan detail rumit seperti yang kami miliki di bawah ini.

Konfigurasikan registry Podman

File registri registry.conf adalah file konfigurasi yang menentukan pendaftar kontainer yang akan digunakan kapan pun Anda ingin mendorong atau menarik gambar. Path lengkap ke file adalah /etc/containers/registries.conf . Ada berbagai pendaftar kontainer di luar sana termasuk hub Docker, Quay.io, RedHat, dan banyak lagi.

Anda dapat melihat file menggunakan editor teks seperti yang ditunjukkan

# sudo /etc/containers/registries.conf

Di Docker, satu-satunya penampung registri adalah Docker Hub. Podman menawarkan lebih banyak kebebasan kepada pengguna untuk mencari dan menarik gambar dari registri apa pun. Anda dapat menentukan daftar pendaftar kontainer dengan menambahkan baris berikut.

unqualified-search-registries = [ 'registry.access.redhat.com', 'registry.redhat.io', 'docker.io']

Saat menjalankan podman search atau podman pull perintah, podman akan menghubungi pendaftar ini dimulai dengan yang pertama dalam urutan itu. Simpan perubahan dan keluar dari file.

Mencari gambar

Sebelum menarik gambar kontainer, sebaiknya cari ketersediaannya di berbagai pendaftar.

Misalnya

$ sudo podman search nginx

Outputnya memberi Anda banyak informasi termasuk Nama registri, Nama gambar, dan deskripsi singkat.

Masuk ke registri

Sebelum Anda mulai menarik atau mendorong gambar, Anda harus masuk ke registri. Pada contoh di bawah ini, saya masuk ke akun Redhat saya yang, pada dasarnya, memberi saya akses ke registri.

$ sudo podman login registry.access.redhat.com

Untuk keluar dari registri, jalankan perintah:

$ sudo podman logout registry.access.redhat.com

Menarik gambar

Untuk menarik gambar, gunakan sintaks:

$ sudo podman pull image_name

Misalnya, untuk menarik gambar build Resmi Nginx, jalankan perintah:

$ sudo podman pull docker.io/library/nginx

Mari kita coba menarik gambar lain. Kami akan menarik gambar MongoDB Resmi sebagai berikut.

$ sudo podman pull docker.io/library/mongo

Menampilkan gambar

Untuk membuat daftar semua gambar, jalankan perintah.

$ sudo podman images

Buat wadah dari gambar

Sekarang setelah kita memiliki gambar yang berada di sistem Debian, kita dapat meluncurkan wadah menggunakan sintaks yang ditunjukkan. Opsi -d menjalankan wadah di latar belakang dan --name opsi menentukan nama khusus untuk wadah

$ sudo podman run -d  --name container_name  image

Misalnya, untuk meluncurkan wadah di latar belakang yang disebut webserv1 dari gambar Nginx, jalankan perintah:

$ sudo podman run  -d --name webserv1 docker.io/library/nginx

Anda dapat meluncurkan beberapa wadah dari gambar yang sama. Mari kita luncurkan wadah lain bernama webserv2 dari gambar Nginx yang sama.

$ sudo podman run -d --name webserv2  docker.io/library/nginx

Mendaftarkan container

Di bagian ini, kita akan melihat berbagai perintah yang dapat Anda gunakan dengan container.

Untuk memeriksa container yang sedang berjalan, jalankan perintah:

$ sudo podman ps

Keluaran disajikan dalam kolom yang memberikan informasi seperti ID Penampung, nama IMAGE, perintah yang menjalankan penampung, tanggal pembuatan, dan status.

Untuk membuat daftar semua kontainer termasuk yang telah keluar jalankan:

$ sudo podman ps -a

Menghentikan kontainer

Untuk menghentikan wadah, gunakan sintaks

$ sudo podman stop CONTAINER_ID

ATAU

$ sudo podman stop container_name

Pada contoh di bawah ini, saya telah menghentikan penampung pertama yang terdaftar menggunakan ID penampungnya

$ sudo podman stop 9daeaabdfdfc

Anda dapat memverifikasi bahwa wadah telah dihentikan menggunakan podman ps memerintah. Kami dapat melihat dengan jelas bahwa setelah menghentikan gambar, kami hanya menjalankan 1 gambar.

podman ps -a perintah akan mencantumkan kedua wadah yang terdiri dari wadah yang baru saja dihentikan.

$ sudo podman ps -a

Memulai penampung

Untuk memulai wadah gunakan sintaks:

$ sudo podman start CONTAINER_ID

ATAU

$ sudo podman start container_name

Misalnya, untuk memulai webserv1, jalankan:

$ sudo podman start webserv1

Mengakses cangkang wadah

Mengakses cangkang wadah paling baik ditunjukkan dengan wadah sistem Operasi.

Di sini, kita akan mengunduh atau menarik gambar Ubuntu:

$ sudo podman pull docker.io/library/ubuntu

Dari gambar, kami akan membuat atau meluncurkan wadah dan mendapatkan akses ke shell menggunakan -it pilihan.

$ sudo podman run --name ubuntu -it docker.io/library/ubuntu  /bin/bash
  • -i, –interactive Tetap buka STDIN meskipun tidak terpasang
  • -t, –tty Alokasikan pseudo-TTY. Defaultnya salah

Periksa log kontainer

Untuk memeriksa log wadah gunakan sintaks:

$ sudo podman logs container_name

Misalnya:

$ sudo podman logs webserv2

Tampilkan statistik penampung

Untuk menampilkan statistik semua container yang sedang berjalan, jalankan:

$ sudo podman stats

Memeriksa wadah

Untuk mencetak detail rumit tentang wadah, gunakan opsi periksa:

$ sudo podman inspect webserv2

Ini mencetak output panjang dalam format JSON.

Gunakan opsi --format untuk memfilter output. Misalnya untuk mencetak alamat IP dari webserv2 container run

$ sudo podman inspect webserv2 --format '{{.NetworkSettings.IPAddress}}'

Anda kemudian dapat melakukan informasi tambahan IP, misalnya menggunakan curl untuk mengambil header HTTP.

$ curl -I ip-address

Menghapus penampung

Untuk menghapus atau menghapus wadah sepenuhnya, pertama-tama hentikan wadah, jika sedang berjalan, dan terakhir keluarkan. Dalam contoh ini, kami telah menghentikan dan menghapus penampung websev1.

$ sudo podman stop webserv1

Kemudian keluarkan wadah yang dihentikan.

$ sudo podman rm webserv1

Menghapus gambar

Untuk menghapus gambar, pertama-tama, pastikan Anda telah menghentikan dan menghapus semua wadah yang diluncurkan dari gambar. Selanjutnya, gunakan rmi pilihan seperti yang ditunjukkan.

$ sudo podman rmi image_name

Misalnya, untuk menghapus Gambar ubuntu, jalankan perintah:

$ sudo podman rmi  docker.io/library/ubuntu

Instal Podman terbaru - Kompilasi dari sumber

Anda dapat menguji versi terbaru Podman dengan menginstal versi pengembangan dari sumbernya.

01. Bangun dan Jalankan Dependensi

sudo apt-get install \
   btrfs-progs \
   git \
   golang-go \
   go-md2man \
   iptables \
   libassuan-dev \
   libbtrfs-dev \
   libc6-dev \
   libdevmapper-dev \
   libglib2.0-dev \
   libgpgme-dev \
   libgpg-error-dev \
   libprotobuf-dev \
   libprotobuf-c-dev \
   libseccomp-dev \
   libselinux1-dev \
   libsystemd-dev \
   pkg-config \
   runc \
   make \
   libapparmor-dev \
   gcc \
   cmake \
   uidmap \
   libostree-dev 

02. Instal Conmon

Conmon adalah container monitor yang merupakan Program C kecil yang bertugas untuk mengawasi proses utama container.

git clone https://github.com/containers/conmon
cd conmon
make
sudo make podman
sudo cp /usr/local/libexec/podman/conmon  /usr/local/bin/

03. Instal runc

Untuk menginstal versi terbaru dari runc

git clone https://github.com/opencontainers/runc.git $GOPATH/src/github.com/opencontainers/runc
cd $GOPATH/src/github.com/opencontainers/runc
make BUILDTAGS="selinux seccomp"
sudo cp runc /usr/bin/runc

03. Instal Antarmuka Jaringan Kontainer (CNI)

Plugin CNI digunakan untuk menyisipkan antarmuka jaringan ke dalam ruang nama jaringan penampung.

git clone https://github.com/containernetworking/plugins.git $GOPATH/src/github.com/containernetworking/plugins
cd $GOPATH/src/github.com/containernetworking/plugins
./build_linux.sh
sudo mkdir -p /usr/libexec/cni
sudo cp bin/* /usr/libexec/cni

Siapkan jaringan

sudo mkdir -p /etc/cni/net.d
curl -qsSL https://raw.githubusercontent.com/containers/libpod/master/cni/87-podman-bridge.conflist | sudo tee /etc/cni/net.d/99-loopback.conf

Tambahkan konfigurasi

sudo mkdir -p /etc/containers
sudo curl -L -o /etc/containers/registries.conf https://src.fedoraproject.org/rpms/containers-common/raw/main/f/registries.conf
sudo curl -L -o /etc/containers/policy.json https://src.fedoraproject.org/rpms/containers-common/raw/main/f/default-policy.json

04. Instal Podman dari Sumber

git clone https://github.com/containers/podman/ $GOPATH/src/github.com/containers/podman
cd $GOPATH/src/github.com/containers/podman
make
sudo make install
$ podman --version
podman version 4.0.0-dev

Kesimpulan

Kami berharap bahwa kami telah memberikan dasar yang kuat dalam perjalanan Anda untuk menjadi lebih profesional dalam menggunakan podman untuk membuat dan mengelola container. Panduan ini memandu Anda melalui instalasi podman di Debian 11 Buster.


Debian
  1. Cara Menginstal Debian 10 (Buster)

  2. Cara Menginstal Python 3.9 di Debian 10

  3. Cara Menginstal TeamViewer di Debian 10

  1. Cara Menginstal Memcached di Debian 10

  2. Cara Menginstal Git di Debian 9

  3. Cara Menginstal Go di Debian 9

  1. Cara Menginstal Pip di Debian 9

  2. Cara Menginstal R di Debian 9

  3. Cara Menginstal Ruby di Debian 9