GNU/Linux >> Belajar Linux >  >> Linux

Bangun wadah Anda sendiri di Linux

Kontainer dijalankan di cloud. Itu karena teknologi penampung memungkinkan situs web dan aplikasi web menelurkan salinan baru dari dirinya sendiri saat permintaan meningkat. Mereka adalah alasan mengapa ratusan juta orang dapat menggunakan situs populer tanpa situs tersebut tertekuk di bawah tekanan lalu lintas global. Kontainer adalah teknologi Linux, artinya mereka bergantung pada kode (khususnya cgroups dan namespaces) unik untuk kernel Linux, jadi ketika Anda menjalankan container, Anda menjalankan Linux. Menggunakan gambar kontainer dari situs seperti quay.io dan dockerhub.io, kebanyakan orang membuat kontainer baru khusus untuk aplikasi atau kasus penggunaan mereka. Tapi itu membuat beberapa orang bertanya-tanya:Jika wadah saya berasal dari bangunan pengembang di atas wadah pengembang lain, di mana itu kontainer berasal? Jangan khawatir, itu bukan kura-kura sepanjang jalan. Anda dapat membuat container dari awal, dan ada alat open source hebat bernama Buildah untuk membantu Anda melakukannya.

Wadah Linux

  • Apa itu container Linux?
  • Pengantar terminologi wadah
  • Unduh:Containers Primer
  • Operator Kubernetes:Mengotomatiskan platform orkestrasi container
  • eBook:Pola Kubernetes untuk mendesain aplikasi cloud-native
  • Apa itu Kubernetes?

Spesifikasi wadah

Container berkembang dari project seperti Linux container (LXC) dan Docker, dan Open Container Initiative (OCI) lah yang mempertahankan spesifikasi formal tentang apa itu container. Kontainer yang dirakit dengan benar yang memenuhi definisi OCI berjalan pada mesin kontainer yang sesuai dengan OCI, seperti Podman, Docker, CRI-O, dan sebagainya.

Memasang Buildah

Di Fedora dan CentOS, Anda mungkin sudah menginstal Buildah. Jika tidak, Anda dapat menginstalnya dengan manajer paket Anda:

$ sudo dnf install buildah 

Pada sistem berbasis Debian dan Debian:

$ sudo apt install buildah 

Mengonfigurasi Buildah 

Karena Buildah membuat container, mengonfigurasi lingkungan Anda untuk itu sama dengan konfigurasi untuk Podman. Baik Anda menggunakan Podman atau tidak, konfigurasikan sistem Anda untuk podman "tanpa akar" sebelum melanjutkan.

Membuat wadah dari ketiadaan

Untuk membangun wadah baru, menggunakan pekerjaan sebelumnya sebagai fondasi Anda, Anda menggunakan nama khusus scratch untuk memberi tahu Buildah bahwa Anda ingin membuat wadah kosong. scratch sebutan bukan nama gambar. Anda dibebaskan dari penggunaan gambar yang ada sebagai dasar pekerjaan Anda.

$ buildah from scratch 

Wadah baru ini, bernama working-container secara default, fitur sejumlah kecil metadata dan benar-benar tidak ada yang lain, dan itu diam-diam berjalan di latar belakang sekarang. Anda dapat melihatnya dengan containers sub-perintah:

$ buildah containers
CONTAINER ID  BUILDER  ID  NAMA GAMBAR   NAMA CONTAINER
dafc77921c0c     *         scratch      working-container

Untuk menjalankan container, Anda harus terlebih dahulu menggunakan unshare subcommand (kecuali jika Anda menjalankan Buildah sebagai root):

$ buildah unshare 

Konfirmasikan bahwa wadah kerja Anda tidak memiliki fungsi (kegagalan respons yang diharapkan dalam contoh ini):

$ buildah run working-container sh
ERRO[0000] container_linux.go:349:memulai proses container menyebabkan "exec:\"sh\":file yang dapat dieksekusi tidak ditemukan di $PATH"

Menambahkan ke penampung Anda

Untuk menambahkan perintah ke wadah Anda, Anda harus memasangnya terlebih dahulu. Gambar kontainer disimpan di ~/.local . Anda direktori secara default:

$ buildah mount working-container
~/.local/share/containers/storage/overlay/b76940e6fe4efad7a0adca3b5399ee12055ddd733bbe273120dcae36a2e6c12f/merged

Dengan wadah terpasang ke ~/.local . Anda direktori (atau /var/lib/containers/ jika dijalankan sebagai root), Anda dapat menambahkan paket menggunakan manajer paket Anda. --releasever harus cocok dengan distribusi yang Anda jalankan saat membuat container.

[Fedora]$ sudo dnf install --installroot \
~/.local/share/containers/storage/overlay/b76940e6fe4efad7a0adca3b5399ee12055ddd733bbe273120dcae36a2e6c12f/merged \
--releaseverbash 33 \
--setopt install_weak_deps=false -y

Metode yang tepat untuk menambahkan paket tergantung pada distribusi Anda dan manajer paket yang digunakannya. Misalnya, di desktop Slackware saya, saya menggunakan installpkg :

[Slack]$ installpkg --root ~/.local/share/containers/storage/overlay/b76940e6fe4efad7a0adca3b5399ee12055ddd733bbe273120dcae36a2e6c12f/merged \
/tmp/bash-5.0.17-SMi>_64-0.17-x86.

Sekarang Anda dapat menjalankan container dan mencoba sesuatu yang sederhana, seperti meluncurkan shell:

$ buildah jalankan working-container bash
# bash --version
GNU bash, versi 5.0.17(1)-release (x86_64-redhat-linux-gnu)
Hak Cipta ( C) 2019 Free Software Foundation, Inc.
Lisensi GPLv3+:GNU GPL versi 3 atau yang lebih baru

Ini adalah perangkat lunak gratis; Anda bebas mengubah dan mendistribusikannya kembali.
TIDAK ADA JAMINAN, sejauh diizinkan oleh hukum.

Mengonfigurasi penampung Anda

buildah config subcommand memberi Anda akses ke atribut umum seperti perintah default yang Anda inginkan agar container dijalankan saat diluncurkan, mengatur variabel lingkungan, mengatur shell default, menentukan pembuat, arsitektur, dan nama host, dan banyak lagi. Misalnya, bayangkan Anda telah menambahkan paket yang berisi skrip shell bernama motd.sh , dan Anda ingin menjalankannya saat penampung diluncurkan:

$ buildah config --author "Seth Kenlon" \
--os "Slackware" --shell /bin/bash \
--cmd /usr/bin/motd.sh working-container

Mendistribusikan wadah Anda

Setelah selesai membuat container, Anda dapat menyimpannya sebagai gambar menggunakan commit sub-perintah.

$ buildah commit working-container my_image 

Buat dengan Buildah

Wadah terkadang tampak ajaib, tetapi sebenarnya tidak ajaib. Mereka dibangun dari bawah ke atas, dan mereka cukup fleksibel sehingga begitu sebuah gambar ada, orang lain dapat menggunakannya untuk membangun wadah baru dan gambar wadah yang mengisi ceruk yang berbeda. Tidak perlu memulai dari awal, tetapi jika Anda penasaran bagaimana gambar dimulai, atau Anda ingin mencoba membuat gambar khusus untuk kebutuhan Anda, Buildah adalah alat yang digunakan.


Linux
  1. Bangun teknologi Anda sendiri di Linux

  2. Lakukan petualangan di terminal Linux Anda

  3. Dinginkan prompt Bash Anda di Linux

  1. Tambahkan 4 alat ini ke kotak alat wadah Linux Anda

  2. Cara Menulis Modul Kernel Linux Anda Sendiri dengan Contoh Sederhana

  3. Membuat Metapackages Kali Linux Anda sendiri

  1. 4 teknologi Linux mendasar untuk container

  2. Cara mengatur printer Anda di Linux

  3. Apa manfaat mengkompilasi kernel linux Anda sendiri?