GNU/Linux >> Belajar Linux >  >> Linux

Tambahkan 4 alat ini ke kotak alat wadah Linux Anda

Saat Anda membutuhkan alat yang tepat, pergi ke toko perangkat keras lokal dan berjalan-jalan di gang memang tiada bandingnya. Sangat menyenangkan untuk menelusuri lorong perkakas tangan dan memeriksa semua obeng, palu, kunci pas heksagonal, pita pengukur, dan banyak lagi. Tepat ketika Anda merasa telah menemukan alat yang tepat, sebuah pemikiran muncul di benak Anda, jika saya dapat melakukannya dengan alat tangan, saya benar-benar dapat menyelesaikannya dengan alat listrik yang sempurna!

Setidaknya itulah yang dikatakan istri saya, dan Anda tahu, dia adalah orang yang berguna di keluarga kami. Alat pilihan saya adalah alat teknologi. Beri saya setumpuk kartu video di toko komputer, dan saya senang berkemah.

Baru-baru ini saya melakukan demo di Podman Community Meeting yang memamerkan beberapa alat wadah baru yang lebih bersinar yang telah kami kembangkan untuk Podman dan Buildah. Kami memiliki banyak pengumuman besar dengan Podman v3.0, jadi saya pikir beberapa alat ini mungkin telah dibayangi. Ketika saya menerima beberapa umpan balik yang bagus dari demonstrasi itu, saya merasa posting tindak lanjut mungkin bisa membantu juga. Jadi, mari selami dan temukan alat kontainer baru yang mengilap ini.

Ubah FROM pertama di Containerfile Anda

Ada --from pilihan di buildah bud perintah yang akan segera masuk ke Podman v3.0. Opsi ini memungkinkan Anda mengganti nilai yang terkait dengan yang pertama—dan hanya yang pertama—DARI pernyataan di Containerfile. Misalnya, jika kita memiliki Containerfile ini:

# cat ~/Containerfile.multifrom
FROM fedora as builder
FROM busybox
COPY --from=builder /bin/df /tmp/df_tester

Kita dapat melakukan lari awal, dan itu akan menunjukkan bahwa kita menggunakan fedora gambar kontainer. Kemudian busybox gambar digunakan dan akhirnya menyalin file dari fedora /bin/df direktori ke dalam busybox /tmp/df_tester gambar' direktori.

# buildah bud -t multi -f ~/Containerfile.multifrom .
STEP 1: FROM fedora AS builder
Resolved "fedora" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Getting image source signatures
Copying blob 157ab8011454 done  
Copying config 9f2a560376 done  
Writing manifest to image destination
Storing signatures
--> 9f2a5603764
STEP 2: FROM busybox
Resolved "busybox" as an alias (/root/.config/containers/short-name-aliases.conf)
Getting image source signatures
Copying blob 4c892f00285e done  
Copying config 22667f5368 done  
Writing manifest to image destination
Storing signatures
STEP 3: COPY --from=builder /bin/df /tmp/df_tester
STEP 4: COMMIT multi
Getting image source signatures
Copying blob 6b245f040973 skipped: already exists  
Copying blob 9b68b051b385 done  
Copying config 187c956137 done  
Writing manifest to image destination
Storing signatures
--> 187c9561378
187c9561378efb043dfd0e8fa9c0afbdc0cf2faeb244e0dd7f2003321feab524

Sekarang bayangkan situasi yang lebih nyata, situasi di mana DARI your Anda pernyataan menunjuk ke gambar yang dibuat khusus dengan berbagai tag untuk versi gambar yang berbeda. Akan lebih baik, terutama di lingkungan CI, untuk hanya meneruskan gambar wadah yang ingin Anda gunakan pada proses berikutnya daripada membuat ulang seluruh Dockerfile. Itulah pekerjaan yang --from mengisi.

Dalam contoh ini, kita akan menjalankan bud yang sama perintah, tapi kali ini kita akan menambahkan --from alpine:latest .

# buildah bud -t multi -f ~/Containerfile.multifrom --from alpine:latest .
STEP 1: FROM alpine:latest AS builder
Resolved "alpine" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Getting image source signatures
Copying blob 4c0d98bf9879 done  
Copying config e50c909a8d done  
Writing manifest to image destination
Storing signatures
--> e50c909a8df
STEP 2: FROM busybox
STEP 3: COPY --from=builder /bin/df /tmp/df_tester
STEP 4: COMMIT multi
Getting image source signatures
Copying blob 6b245f040973 skipped: already exists  
Copying blob b498f23d5c32 done  
Copying config d7e92107ed done  
Writing manifest to image destination
Storing signatures
--> d7e92107edf
d7e92107edf42f046f6a7faddade4825ef1c2361ae21eb0ac3694871dcdb496c

Anda dapat melihat bahwa alpine:latest container image pertama kali digunakan, dan sekarang setelah busybox gambar telah dibuat, file dari /bin/df al alpine disalin ke /tmp/df_tester direktori di busybox . Nilai FROM pertama pernyataan di Containerfile diganti dengan argumen yang kita lewati dengan --from pilihan.

[ Anda mungkin juga ingin membaca: Wadah tanpa root menggunakan Podman ]

Terima masukan selama pembuatan

Alat baru lainnya adalah --stdin opsi yang sesuai dengan buildah bud atau podman build (pada Podman v3.0). Saat Anda menggunakan opsi ini, proses build akan berhenti sejenak dan meminta input keyboard jika proses yang berjalan selama prosedur build memintanya.

Lihatlah Containerfile ini:

# cat /root/Containerfile.stdin
FROM ubi8
RUN yum install iputils
RUN touch /tmp/done

Containerfile ini menggunakan ubi8 image dan kemudian instal iputils . Seperti yang mungkin bisa Anda tebak, yum perintah akan meminta kami untuk memverifikasi pemasangan iputils . Mari kita lihat apa yang terjadi tanpa --stdin pilihan dalam permainan.

# cat /root/Containerfile.stdin
FROM ubi8
RUN yum install iputils
RUN touch /tmp/done

# cat /root/Containerfile.stdin
FROM ubi8
RUN yum install iputils
RUN touch /tmp/done

# buildah bud -t mystdin -f ~/Containerfile.stdin .
STEP 1: FROM ubi8
Resolved "ubi8" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Getting image source signatures
Copying blob d9e72d058dc5 done  
Copying blob cca21acb641a done  
Copying config 3269c37eae done  
Writing manifest to image destination
Storing signatures
STEP 2: RUN yum install iputils
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Red Hat Universal Base Image 8 (RPMs) - BaseOS  2.5 MB/s | 774 kB     00:00    
Red Hat Universal Base Image 8 (RPMs) - AppStre 7.6 MB/s | 5.0 MB     00:00    
Red Hat Universal Base Image 8 (RPMs) - CodeRea  75 kB/s |  13 kB     00:00    
Dependencies resolved.
================================================================================
 Package        Architecture  Version                 Repository           Size
================================================================================
Installing:
 iputils        x86_64        20180629-2.el8          ubi-8-baseos        149 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 149 k
Installed size: 361 k
Is this ok [y/N]: Operation aborted.
error building at STEP "RUN yum install iputils": error while running runtime: exit status

Kapan yum menginstal iputils , itu meminta konfirmasi dan gagal karena tidak pernah menerima tanggapan. Sekarang mari kita lihat apa yang terjadi dengan --stdin pilihan dalam permainan.

# buildah bud -t mystdin --stdin -f ~/Containerfile.stdin .
STEP 1: FROM ubi8
STEP 2: RUN yum install iputils
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Red Hat Universal Base Image 8 (RPMs) - BaseOS  2.8 MB/s | 774 kB     00:00    
Red Hat Universal Base Image 8 (RPMs) - AppStre 7.5 MB/s | 5.0 MB     00:00    
Red Hat Universal Base Image 8 (RPMs) - CodeRea  86 kB/s |  13 kB     00:00    
Dependencies resolved.
================================================================================
 Package        Architecture  Version                 Repository           Size
================================================================================
Installing:
 iputils        x86_64        20180629-2.el8          ubi-8-baseos        149 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 149 k
Installed size: 361 k
Is this ok [y/N]: y

Itu tidak muncul juga di blog seperti secara pribadi, tetapi proses pembuatan berhenti di baris Apakah ini boleh [y/T]: dan saya memasukkan karakter y dan pembangunan dilanjutkan (lihat output di bawah).

Downloading Packages:
iputils-20180629-2.el8.x86_64.rpm               972 kB/s | 149 kB     00:00    
--------------------------------------------------------------------------------
Total                                           952 kB/s | 149 kB     00:00    
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : iputils-20180629-2.el8.x86_64                          1/1
  Running scriptlet: iputils-20180629-2.el8.x86_64                          1/1
  Verifying        : iputils-20180629-2.el8.x86_64                          1/1
Installed products updated.

Installed:
  iputils-20180629-2.el8.x86_64                                                

Complete!
STEP 3: RUN touch /tmp/done
STEP 4: COMMIT mystdin
Getting image source signatures
Copying blob 92538e92de29 skipped: already exists  
Copying blob eb7bf34352ca skipped: already exists  
Copying blob f9ed641975cb done  
Copying config b2742f08a7 done  
Writing manifest to image destination
Storing signatures
--> b2742f08a7a
b2742f08a7ae2cb76a2cd0c481f2d2d66b303379d23e5260577ea09476a8a486

Ini adalah contoh sederhana lainnya, terutama karena Anda dapat menambahkan -y argumen ke yum memerintah. Namun, mungkin ada perintah lain yang ingin Anda jalankan selama proses pembuatan yang ingin Anda masukkan lebih signifikan dengan mudah.

Temukan tag untuk gambar kontainer

Alat berikutnya yang relatif baru untuk Podman ini menunjukkan semua tag untuk gambar kontainer di registri. Saya menggunakan gambar di quay.io untuk Buildah, Podman, dan Skopeo, dan terkadang saya ingin menggunakan versi tertentu dari salah satu proyek dan tidak dapat mengingat mana yang ada di luar sana. Jika Anda terbiasa dengan Skopeo, Skopeo bekerja dengan sangat baik di ruang ini. Tetapi jika Anda belum menginstal Skopeo secara lokal, atau tidak dapat karena alasan tertentu, maka --list-tags yang baru opsi untuk podman search perintah adalah tiket Anda.

Jadi mari kita lihat semua tag yang dimiliki gambar Podman stable di quay.io:

# podman search --list-tags quay.io/podman/stable
NAME                   TAG
quay.io/podman/stable  v1.4.4
quay.io/podman/stable  v1.4.2
quay.io/podman/stable  v1.5.1
quay.io/podman/stable  v1.5.0
quay.io/podman/stable  v1.6.2
quay.io/podman/stable  auto
quay.io/podman/stable  v1.6
quay.io/podman/stable  v1.9.0
quay.io/podman/stable  v1.9.1
quay.io/podman/stable  v2.0.2
quay.io/podman/stable  v2.0.6
quay.io/podman/stable  v2.1.1
quay.io/podman/stable  master
quay.io/podman/stable  latest

Cepat, mudah, dan praktis.

Menggunakan gambar wadah Skopeo

Alat ini adalah jenis ying ke alat terakhir yang . Proyek Skopeo dipenuhi dengan banyak alat untuk digunakan dengan gambar kontainer. Itu juga akan menunjukkan kepada Anda daftar tag yang dimiliki gambar di registri. Skopeo juga dapat menampilkan informasi tentang registry, memungkinkan Anda untuk menyalin image container antar mekanisme penyimpanan termasuk registry, menyinkronkan registry container, menghapus image dari registry, dan banyak lagi.

Sekarang saya tidak akan membahas masing-masing perintah Skopeo ini di sini. Saya hanya akan melakukan kemampuan pencarian untuk menunjukkan tag. Perubahannya adalah saya hanya akan menggunakan Podman untuk menjalankan quay.io/skopeo/stable:latest image, oleh karena itu menghilangkan kebutuhan untuk menginstal Skopeo namun masih memiliki semua fungsinya.

Jadi mari kita daftar tag dari quay.io/podman/stable:latest gambar lagi, tapi kali ini melalui gambar wadah Skopeo:

# podman run quay.io/skopeo/stable:latest list-tags docker://quay.io/podman/stable
Trying to pull quay.io/skopeo/stable:latest...
Getting image source signatures
Copying blob 6629904ed3b7 done  
Copying blob 2b74ed94761c done  
Copying blob 692512e477a1 done  
Copying blob 166a3cbbffd1 done  
Copying blob b1e90be38d32 done  
Copying blob a5dc7d6cfd62 done  
Copying blob a3ed95caeb02 done  
Copying blob a3ed95caeb02 done  
Writing manifest to image destination
Storing signatures
{
    "Repository": "quay.io/podman/stable",
    "Tags": [
        "v1.4.4",
        "v1.4.2",
        "v1.5.1",
        "v1.5.0",
        "v1.6.2",
        "auto",
        "v1.6",
        "v1.9.0",
        "v1.9.1",
        "v2.0.2",
        "v2.0.6",
        "v2.1.1",
        "master",
        "latest"
    ]
}

Pertama kali Anda menjalankan perintah ini, ini lebih lambat daripada yang setara dengan Podman karena Anda dikenakan biaya skopeo gambar kontainer ditarik. Setelah itu, kecepatannya setara pada putaran kedua, dan kemudian Anda dapat melakukan perintah Skopeo lain yang Anda inginkan juga.

Saya akan membiarkan Anda menjelajah lebih jauh sendiri, dan saya sarankan memulai penjelajahan Anda dengan How to run Skopeo in a container dari Valentin Rothberg. . Saya rasa gambar container Skopeo adalah alat yang paling keren di kotak alat container saya.

[ Memulai container? Lihat kursus gratis ini. Menyebarkan aplikasi kemas:Tinjauan teknis. ]

Semua alat baru yang mengilap

Sekarang istri saya masih dapat memiliki semua alat mengkilapnya dari toko perangkat keras lokal, dan saya akan menyimpan alat wadah baru saya di kotak alat virtual saya. Saya harap Anda menemukan perintah dan opsi baru ini berguna di kotak peralatan Anda sendiri.


Linux
  1. Bangun wadah Anda sendiri di Linux

  2. 4 alat Linux untuk menghapus data Anda

  3. Tambahkan video sebagai wallpaper di desktop Linux Anda

  1. 7 fitur wadah/transportasi gambar Linux yang menyenangkan

  2. 20 perintah Linux satu baris untuk ditambahkan ke kotak peralatan Anda

  3. 6 Alat Sumber Terbuka yang Harus Dimiliki untuk Mengamankan Server Linux Anda

  1. Tingkatkan perangkat keras PC Linux Anda menggunakan alat sumber terbuka

  2. Apa perbedaan antara wadah Linux dan gambar?

  3. Tambahkan stempel waktu ke gambar dari baris perintah Linux