Tutorial Docker: Memulai Docker Hub

Kekuatan image Docker adalah ringan dan portabel — dapat dipindahkan dengan bebas antar sistem. Anda dapat dengan mudah membuat sekumpulan gambar standar, menyimpannya dalam repositori di jaringan Anda, dan membagikannya ke seluruh organisasi Anda. Atau Anda dapat beralih ke Docker Inc., yang telah menciptakan berbagai mekanisme untuk berbagi gambar kontainer Docker secara publik dan pribadi.

Yang paling menonjol di antaranya adalah Docker Hub, pertukaran publik perusahaan untuk gambar kontainer. Banyak proyek open source menyediakan versi resmi gambar Docker mereka di sana, menjadikannya titik awal yang nyaman untuk membuat container baru dengan membangun container yang sudah ada, atau hanya mendapatkan versi stok container untuk menjalankan proyek dengan cepat. Dan Anda mendapatkan satu repositori Docker Hub pribadi Anda sendiri secara gratis. 

Jelajahi Docker Hub

Cara termudah untuk menjelajahi Docker Hub adalah dengan menjelajahinya di web. Dari antarmuka web, Anda dapat mencari penampung yang tersedia untuk umum menurut nama, tag, atau deskripsi. Dari sana, semua yang Anda butuhkan untuk mengunduh, menjalankan, dan bekerja dengan image container dari Docker Hub disertakan dalam versi open source Docker — terutama, perintah docker pulldan docker push.

Harga Docker Hub

Tidak ada biaya untuk mendapatkan kontainer dari Docker Hub. Terlebih lagi, jika Anda ingin menghosting kontainer di Docker Hub dan Anda memiliki kebutuhan yang sederhana, Anda mungkin tidak perlu membayar untuk itu juga. Paket gratis, yang mendukung satu repositori pribadi dan satu build paralel (lebih lanjut tentang itu nanti), biasanya cukup untuk pengembang individu. Harga untuk paket lain (lebih banyak repositori pribadi, lebih banyak build paralel) berkisar dari $ 7 hingga $ 100 per bulan.

Selain itu, tidak peduli tingkat apa yang Anda gunakan, Docker tidak memberlakukan batasan tegas untuk ukuran gambar atau permintaan tarik. Meskipun demikian, apa pun yang lebih besar dari beberapa gigabyte akan menjadi tidak praktis untuk ditangani — baik untuk Anda pelihara maupun untuk ditarik orang lain untuk proyek mereka.

Organisasi Docker Hub untuk tim

Jika Anda menggunakan Docker Hub dengan orang lain, Anda dapat membuat organisasi, yang memungkinkan sekelompok orang untuk berbagi repositori gambar tertentu. Organisasi dapat dibagi lagi menjadi beberapa tim, masing-masing dengan kumpulan hak istimewa repositori mereka sendiri. Pemilik organisasi dapat membuat tim dan repositori baru, serta menetapkan hak istimewa baca, tulis, dan admin repositori kepada sesama pengguna. 

Perhatikan bahwa Docker Hub memerlukan nama organisasi lebih dari tiga karakter. Dengan kata lain, Anda tidak dapat memiliki organisasi bernama "dev." Ini tampaknya merupakan batasan arsitektur yang tidak dapat diatasi oleh Docker. 

Repositori Docker Hub

Repositori Docker Hub bisa publik atau privat. Repo publik dapat dicari dan diakses oleh siapa saja, bahkan mereka yang tidak memiliki akun Docker Hub. Repositori pribadi hanya tersedia untuk pengguna yang Anda berikan akses secara khusus, dan mereka tidak dapat ditelusuri secara publik. Perhatikan bahwa Anda dapat mengubah repo pribadi menjadi publik dan sebaliknya.

Perhatikan juga bahwa jika Anda membuat repo pribadi menjadi publik, Anda harus memastikan bahwa kode yang terbuka dilisensikan untuk digunakan oleh semua orang. Docker Hub tidak menawarkan cara apa pun untuk melakukan analisis lisensi otomatis pada gambar yang diunggah; itu semua terserah kamu.

Meskipun seringkali paling mudah untuk mencari repositori menggunakan antarmuka web, baris perintah atau shell Docker juga memungkinkan Anda untuk mencari gambar. Gunakan docker searchuntuk menjalankan pencarian, yang mengembalikan nama dan deskripsi gambar yang cocok.

Repositori tertentu ditandai sebagai repositori resmi. Ini menyediakan gambar Docker yang dikuratori yang dimaksudkan sebagai versi default, masuk ke wadah untuk proyek atau aplikasi tertentu (misalnya Nginx, Ubuntu, MySQL). Docker mengambil langkah tambahan untuk memverifikasi asal dan keamanan image resmi.

Jika Anda sendiri memelihara proyek yang ingin Anda tandai sebagai repositori resmi di Docker Hub, buat permintaan tarik untuk memulai proses. Namun, perhatikan bahwa terserah Docker untuk menentukan apakah proyek Anda layak untuk disertakan.

Docker push dan Docker pull

Sebelum Anda dapat mendorong dan menarik image container ke dan dari Docker Hub, Anda harus terhubung ke Docker Hub dengan docker loginperintah, di mana Anda akan mengirimkan nama pengguna dan kata sandi Docker Hub. Secara default docker loginmembawa Anda ke Docker Hub, tetapi Anda dapat menggunakannya untuk menghubungkan ke repositori yang kompatibel, termasuk yang dihosting secara pribadi.

Secara umum, bekerja dengan Docker Hub dari baris perintah cukup mudah. Gunakan docker searchseperti yang dijelaskan di atas untuk menemukan gambar,  docker pulluntuk menarik gambar berdasarkan nama, dan  docker pushuntuk menyimpan gambar berdasarkan nama. A docker pullmenarik gambar dari Docker Hub secara default, kecuali Anda menentukan jalur ke registri yang berbeda. 

Perhatikan bahwa saat Anda mendorong gambar, sebaiknya beri tag terlebih dahulu. Tag bersifat opsional, tetapi membantu Anda dan tim Anda membedakan versi gambar, fitur, dan karakteristik lainnya. Cara umum untuk melakukannya adalah dengan mengotomatiskan pemberian tag sebagai bagian dari proses pembuatan gambar Anda — misalnya, dengan menambahkan informasi versi atau cabang sebagai tag ke gambar.

Build otomatis di Docker Hub

Gambar container yang dihosting di Docker Hub dapat dibuat secara otomatis dari komponennya yang dihosting di repositori. Dengan pembuatan otomatis, setiap perubahan pada kode di repo secara otomatis tercermin dalam penampung; Anda tidak perlu mendorong image yang baru dibuat secara manual ke Docker Hub.

Build otomatis bekerja dengan menautkan gambar ke konteks build, yaitu repo yang berisi Dockerfile yang dihosting di layanan seperti GitHub atau Bitbucket. Meskipun Docker Hub membatasi Anda untuk satu build setiap lima menit, dan belum ada dukungan untuk file besar Git atau container Windows, build otomatis tetap berguna untuk project yang diperbarui setiap hari atau bahkan setiap jam.

Jika Anda memiliki akun Docker Hub berbayar, Anda dapat memanfaatkan build paralel. Akun yang memenuhi syarat untuk lima build paralel dapat membuat container dari hingga lima repositori berbeda sekaligus. Perhatikan bahwa setiap repositori individu hanya diperbolehkan membangun satu kontainer dalam satu waktu; paralelisme ada di seluruh repo daripada di seluruh gambar dalam sebuah repo.

Mekanisme kenyamanan lain untuk pengembang di Docker Hub adalah webhook. Setiap kali terjadi peristiwa tertentu yang melibatkan repositori — gambar dibuat ulang, atau tag baru ditambahkan — Docker Hub dapat mengirim permintaan POST ke titik akhir tertentu. Anda dapat menggunakan webhook untuk menerapkan atau menguji gambar secara otomatis setiap kali dibuat ulang, atau untuk menerapkan gambar hanya jika lulus pengujian.