Layer membuat image mudah dibagikan, dan tempat terbesar untuk berbagi adalah Docker Hub — registry bawaan yang menyimpan jutaan repositori image publik, dari image resmi yang dipelihara ketat sampai proyek iseng yang ditinggalkan pemiliknya. Pilihan sebanyak itu adalah pedang bermata dua: hampir semua kebutuhan sudah tersedia image-nya, tetapi tidak semua image layak dipakai. Menarik image sembarangan sama saja dengan menjalankan kode pihak yang tidak kita kenal di mesin sendiri. Chapter ini mengajarkan dua keterampilan yang berurutan: menemukan kandidat image dengan docker search, lalu menilai kualitasnya sebelum satu byte pun diunduh.
Mencari Image dengan docker search #
Perintah docker search menanyakan indeks Docker Hub langsung dari terminal, tanpa membuka browser dan tanpa mengunduh satu layer pun. Argumennya adalah kata kunci yang dicocokkan ke nama repositori dan deskripsinya. Mari kita cari image nginx — salah satu kata kunci paling populer di Docker Hub:
$ docker search nginxOutput yang Dihasilkan:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 20432 [OK]
jwilder/nginx-proxy Automated nginx proxy for docker containers 6184
bitnami/nginx Bitnami container image for NGINX 1248 [OK]
webdevops/php-nginx Nginx with PHP-FPM 1187 [OK]
nginxinc/nginx-unprivileged Nginx image adapted for unprivileged users 926
dperson/nginx-certbot Nginx with certbot certificate automation 47
...Baris ... menandai output yang dipotong: docker search sebenarnya mengembalikan hingga 25 baris secara bawaan. Mari kita telaah arti kelima kolomnya:
- NAME — nama repositori. Nama tanpa garis miring seperti
nginxadalah image resmi di namespacelibrary/; nama dengan prefiks sepertibitnami/nginxberarti repositori milik akun atau organisasibitnami. - DESCRIPTION — deskripsi singkat yang ditulis pemilik repositori; berguna untuk mengenali fungsi image di balik nama yang singkat.
- STARS — jumlah bintang, semacam tombol suka dari pengguna Docker Hub. Bintang mengukur popularitas, bukan kualitas kode ataupun keamanan.
- OFFICIAL — tanda
[OK]berarti image resmi (Docker Official Images): melewati review, mengikuti praktik terbaik, dan diperbarui rutin oleh tim pemeliharanya. - AUTOMATED — tanda
[OK]berarti image dibangun oleh fitur build otomatis lama Docker Hub dari Dockerfile yang tersambung ke repositori kode; fitur ini sudah jarang dipakai sehingga kolomnya kerap kosong pada image modern.
Keterbatasan docker search #
Pencarian ini bekerja pada tingkat repositori, bukan tag. Kata kunci nginx menemukan repositori bernama nginx beserta kerabatnya, tetapi tidak ada cara mencari “nginx versi 1.29” atau memfilter berdasarkan tag — tag seperti 1.29-alpine atau 1.29.4 tidak diindeks oleh docker search. Untuk menjelajah tag, buka halaman repositori di Docker Hub melalui browser, misalnya https://hub.docker.com/_/nginx, lalu pilih tab Tags: di situ tercantum seluruh tag beserta ukuran unduhan, waktu pembaruan terakhir, dan arsitektur yang didukung. Karena docker search tidak mengunduh apa pun, menjalankannya berulang kali tidak membebani kuota pull Docker Hub yang kita bedah pada pembuka Chapter Menarik Image.
Menyaring Hasil dengan –filter #
Output mentah 25 baris kurang praktis untuk dibaca. Flag --filter memangkasnya langsung dari terminal, dan beberapa filter bisa dipakai sekaligus dengan logika AND. Penyaringan yang paling sering dipakai: hanya image resmi, hanya image dengan bintang di atas ambang tertentu, atau keduanya digabung.
Penyaringan pertama menampilkan hanya image resmi:
$ docker search --filter is-official=true nginxOutput yang Dihasilkan:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 20432 [OK]Hanya satu baris yang lolos: image resmi nginx. Repositori komunitas seperti jwilder/nginx-proxy dan bitnami/nginx tersaring keluar bukan karena jelek, melainkan karena tidak mengikuti program Docker Official Images — kolom OFFICIAL mereka kosong.
Penyaringan kedua memakai jumlah bintang sebagai ambang:
$ docker search --filter stars=100 nginxOutput yang Dihasilkan:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 20432 [OK]
jwilder/nginx-proxy Automated nginx proxy for docker containers 6184
bitnami/nginx Bitnami container image for NGINX 1248 [OK]
webdevops/php-nginx Nginx with PHP-FPM 1187 [OK]
nginxinc/nginx-unprivileged Nginx image adapted for unprivileged users 926
...Mari kita telaah perbedaannya dengan pencarian pertama: baris dperson/nginx-certbot hilang karena bintangnya hanya 47, di bawah ambang 100. Filter stars=N hanya menampilkan repositori dengan jumlah bintang minimal N, sementara baris lain yang lolos tampil seperti biasa — output tetap dipotong karena masih ada repositori lain berbintang di atas 100 hingga batas 25 hasil.
Dua filter juga bisa digabung dalam satu perintah:
$ docker search --filter is-official=true --filter stars=100 nginxOutput yang Dihasilkan:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 20432 [OK]Hasilnya kembali satu baris karena kedua filter bekerja dengan logika AND: kandidat harus resmi sekaligus berbintang minimal 100. Bila kelak ada image resmi dengan bintang di bawah ambang, image tersebut akan tersaring keluar dari kombinasi ini — logika AND memangkas dari dua arah sekaligus.
Membatasi Jumlah Hasil dengan –limit #
Secara bawaan, docker search mengembalikan maksimal 25 hasil. Flag --limit mengubah angka tersebut menjadi lebih kecil untuk sekilas pandang, atau dinaikkan hingga batas atas yang diizinkan, yakni 100:
$ docker search --limit 3 nginxOutput yang Dihasilkan:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 20432 [OK]
jwilder/nginx-proxy Automated nginx proxy for docker containers 6184
bitnami/nginx Bitnami container image for NGINX 1248 [OK]Tiga baris teratas tampil sesuai permintaan. Kombinasi --limit dengan --filter juga sah dilakukan — misalnya hanya tiga image resmi teratas — dan pola seperti ini nyaman dipakai di skrip yang membutuhkan hasil pendek dan terprediksi jumlahnya.
Menilai Kualitas Image Sebelum Dipakai #
Hasil pencarian hanyalah kandidat; keputusan akhir tetap milik kita. Kolom STARS dan OFFICIAL pada docker search adalah dua sinyal pertama, tetapi penilaian yang lebih matang memeriksa lima sinyal berikut sebelum image dipakai di proyek.
| Sinyal | Cara membacanya |
|---|---|
Image resmi di namespace library/ | melewati review program Docker Official Images dan diperbarui rutin; pilihan pertama untuk perangkat lunak populer |
| Publisher Verified | akun penerbit menjalani verifikasi Docker Hub; organisasi di balik image terbukti memang pemilik sahnya |
| Jumlah bintang | popularitas dalam jangka panjang; ribuan bintang menandakan basis pemakai luas, bukan jaminan aman |
| Terakhir diperbarui | image yang tak disentuh bertahun-tahun hampir pasti membawa kerentanan lama; utamakan yang aktif dipelihara |
| Dockerfile publik | sumber build bisa dibaca siapa pun sehingga isi image bisa diaudit sebelum dipakai |
Sinyal-sinyal di atas memangkas risiko, tetapi tidak menghapusnya. Ekosistem image publik berulang kali terbukti menjadi ladang penyebaran malware, dan para penyerang paling sering memanfaatkan kecerobohan membaca nama.
Dengan kata kunci, filter, dan daftar sinyal di tangan, kita sudah bisa menyusun daftar kandidat image yang layak dipakai. Langkah berikutnya jelas: mengunduh kandidat itu ke penyimpanan lokal — dan di sana menanti kejutan baik berupa layer yang bisa dibagikan, serta kejutan lain berupa rate limit yang perlu dikelola. Chapter Menarik Image membedah proses itu baris demi baris.
Referensi #
- docker search — CLI Reference
— sintaks lengkap beserta flag
--filterdan--limit. - Docker Hub — dokumentasi Docker Hub termasuk program image resmi dan Publisher Verified.
- nginx di Docker Hub — contoh halaman repositori lengkap dengan tab Tags.