Skip to content

emka.web.id

Menu
  • Home
  • Indeks Artikel
  • Tutorial
  • Tentang Kami
Menu

Cara Menjadi Power User Docker CLI Dengan “–format” dan Output Template

Posted on July 19, 2022 by Syauqi Wiryahasana






Menggunakan CLI Docker untuk membuat daftar dan memeriksa sumber daya pada sistem Anda sering kali menghasilkan keluaran verbose yang dapat menyembunyikan detail penting. Docker mendukung sintaks templating Go bersama dengan flag --format untuk memberi Anda kendali atas apa yang ditampilkan.



Mempelajari cara menggunakan templat dapat mengubah Anda menjadi pengguna kuat CLI Docker. Mereka memungkinkan Anda memilih dan mengubah output perintah secara efisien untuk membuat tampilan yang Anda butuhkan. Hal ini menghasilkan pengalaman CLI yang lebih produktif dan lebih sedikit waktu yang dihabiskan untuk memindai baris konsol yang panjang.

Perintah Manakah yang Mendukung “–format”?


Bendera --format didukung oleh perintah buruh pelabuhan yang paling umum digunakan. Anda dapat menggunakannya dengan pemeriksaan buruh pelabuhan dan perintah yang menghasilkan daftar item, seperti ps buruh pelabuhan, gambar buruh pelabuhan, dan volume buruh pelabuhan.



Bila Anda menyertakan flag --format, Docker akan mengirimkan output perintah melalui string template Go yang Anda berikan. Anda dapat menggunakan fitur templating yang disediakan oleh Go untuk menggunakan placeholder yang disetel oleh Docker. Ini memberi Anda akses ke data yang diambil oleh CLI.

A Basic Example


Running docker inspect pada container menampilkan objek JSON panjang yang biasanya memenuhi jendela terminal Anda. Dengan menggunakan --format, Anda dapat menarik bagian tertentu dari data yang Anda minati. Berikut adalah contoh yang menunjukkan status penampung, PID, dan waktu mulai:

~$ docker inspect 94a8d1315315 --format `{{. Status.Status}} (PID: {{.State.Pid}}) {{.State.StartedAt}}` berjalan (PID: 1488278) 2022-03-22T20:45:58.614115689Z

Jauh lebih mudah untuk melihat nilai target menggunakan template daripada saat menelusuri secara manual melalui JSON.

mentah Mengakses Nilai Output


Bagian dinamis dari template Anda dibungkus dengan tanda kurung kurawal ganda. Anda dapat mereferensikan nilai dalam output perintah Docker menggunakan sintaks {{.Field}}. Bidang harus berupa nama properti dalam representasi JSON dari output tersebut. Kolom bertingkat dipilih menggunakan sintaks berantai yang mirip dengan akses properti di JavaScript, .Field.NestedValue.



Anda dapat mengetahui kolom mana yang tersedia dengan melihat output mentah perintah. buruh pelabuhan memeriksa menampilkan JSON secara default; ini dapat langsung dipetakan ke placeholder sintaks template. Untuk perintah lain seperti ps dan gambar, Anda dapat mengambil struktur JSON yang mendasarinya menggunakan templat khusus:

docker ps --format `{{json .}}`

Fungsi json menampilkan versi mentah JSON dari data yang Anda berikan.

Transformasi Sederhana


Transformasi fungsi menawarkan cara mudah untuk memanipulasi nilai. atas dan bawah mengkonversi string ke huruf besar dan huruf kecil masing-masing. Anda dapat menerapkan selubung judul ke string dengan judul. Fungsi dimasukkan ke dalam template sebelum nilai yang mereka operasikan:

~$ docker inspect 94a8d1315315 --format `{{upper .State.Status}} (PID: {{.State.Pid}})` MENJALANKAN (PID: 1488278)

Jika Anda ingin menambahkan karakter baris baru di antara nilai, gunakan fungsi println:

~$ docker inspect 94a8d1315315 --format `{{.State.Status}} {{.State.Pid}}{{ println}}{{.State.StartedAt}}` berjalan 1488278 2022-03-22T20:45:58.614115689ZBekerja Dengan Array


Sintaks template memiliki dukungan terintegrasi untuk iterasi elemen array. Fungsi rentang mengulang nilai array dan menetapkan . variabel untuk masing-masing:

~$ docker inspect 94a8d1315315 --format `{{range .Mounts}}{{println .Destination}}{{end}}` /config /data

Anda dapat menggabungkan elemen array bersama dengan fungsi join:

~$ docker inspect 94a8d1315315 --format `{{join .Config.Cmd " "}}` caddy run --config /etc/caddy/Caddyfile --adapter caddyfile

Ini membuat string yang menggabungkan setiap nilai dalam array. Elemen digabungkan bersama dengan teks yang ditentukan sebagai parameter kedua argumen.

Tabulating Output


Banyak perintah Docker default untuk menampilkan data dalam tata letak tabel yang dapat dibaca manusia. Anda dapat membuat tabel sendiri menggunakan komponen template tabel khusus.



Gunakan karakter t untuk memisahkan bidang data ke dalam kolom tabel. Template akan dieksekusi untuk setiap item yang termasuk dalam output perintah Docker CLI. Kolom tabel secara otomatis disesuaikan dengan panjang kontennya.

~$ gambar buruh pelabuhan --format `table {{.ID}}t{{.Tag}}t{{.Size}}` UKURAN TAG ID GAMBAR ede20431e41f caddy 40.4MB e5179b119094 40.4MB

Docker secara otomatis menyertakan header kolom yang sesuai untuk bidang di template Anda.

Conditional Formatting


Templates juga mendukung pernyataan "jika" bersyarat. Anda dapat menyesuaikan output perintah secara dinamis dengan menampilkan nilai yang berbeda berdasarkan kondisi:

~$ docker ps --format `{{.ID}} {{if eq .State "running"}}Alive{{else}}Not Berlari{{end}}` 94a8d1315315 Alive

Templat ini menampilkan Alive atau Not Running tergantung pada apakah setiap bidang State penampung diatur untuk berjalan. Blok if diikuti oleh nilai yang ditampilkan saat kondisinya cocok. Blok lain opsional dapat dirantai setelahnya. Kondisi diakhiri oleh {{end}} template kata kunci.



Go memahami beberapa operator perbandingan. Persamaan yang ditunjukkan di atas memeriksa apakah nilai pertama sama dengan yang kedua. Opsi berikut tersedia sebagai tambahan:

ne – Perbandingan “tidak sama dengan” Memformat Menggunakan Jq


Bendera --format terutama digunakan untuk membuat string keluaran yang dapat dibaca manusia. Jika Anda lebih nyaman memeriksa JSON mentah, Anda dapat menggunakan alat lain seperti jq untuk memanipulasi output Docker secara lebih langsung. Ini dapat berguna ketika Anda ingin membuat kueri yang lebih canggih daripada yang dapat disediakan oleh template Go saja.



docker inspect menghasilkan JSON secara default sehingga outputnya dapat disalurkan langsung ke jq:

~$ docker inspect 94a8d1315315 | jq .[0].Config.Cmd [ "kadi", "Lari", "--konfigurasi", "/etc/caddy/Caddyfile", "--adaptor", "caddyfile" ]

Output dari perintah lain harus dikonversi ke JSON mentahnya dengan --format sebelum diteruskan ke jq:

~$ docker images --format `{{json .}}` | jq .Ukuran "968MB" "946MB" "40.1MB"

Jq menyediakan sintaksnya sendiri untuk memilih, memanipulasi, dan memformat data JSON. Dasar-dasarnya mirip dengan placeholder template Go. Bidang direferensikan menggunakan sintaks .Field. Ada dukungan untuk memilih elemen array menggunakan notasi .[index].

Conclusion


The Docker CLI menjadi lebih kuat saat Anda dapat melihat dan memanipulasi data output secara selektif. Template Go dengan flag --format menyediakan cara untuk membuat antarmuka khusus yang menyederhanakan pengelolaan container Anda.



Dalam beberapa situasi, --format mungkin masih tidak menawarkan kekuatan dan fleksibilitas yang Anda butuhkan. Memiping perintah Docker ke alat eksternal seperti jq menyediakan cara lain untuk menginterogasi instalasi Anda dengan cepat dan memunculkan datanya di dalam sistem lain.



Itulah berita seputar Cara Menjadi Power User Docker CLI Dengan “–format” dan Output Template, semoga bermanfaat. Disadur dari HowToGeek.com.
Seedbacklink

Recent Posts

TENTANG EMKA.WEB>ID

EMKA.WEB.ID adalah blog seputar teknologi informasi, edukasi dan ke-NU-an yang hadir sejak tahun 2011. Kontak: kontak@emka.web.id.

©2024 emka.web.id Proudly powered by wpStatically