‫Persyaratan untuk kuliah ini termasuk mengetahui dasar-dasar tentang apa wadah
‫dan gambar di Docker dan
‫memahami lapisan, atau setidaknya dasar-dasar lapisan. Ketahui beberapa hal tentang Docker Hub.
‫Kuliah ini akan membahas tentang tag gambar dan cara mengunggahnya ke Docker Hub.
‫Sebenarnya ada banyak tag karena mereka tidak seintuitif yang Anda pikirkan
‫ketika pertama kali mulai menggunakannya. Mereka harus benar-benar berada dalam format tertentu agar dapat
‫bekerja dengan registri, khususnya dengan Docker Hub. Lalu saya akan berbicara dengan Anda tentang hubungan
‫antara tag yang ditetapkan untuk gambar Anda dan ID dari gambar-gambar itu.
‫Jadi mari kita mulai.
‫Pertama mari kita bicara tentang penandaan. tag gambar buruh pelabuhan --membantu Gambar tidak secara teknis memiliki nama walaupun kita menyebutnya
‫seperti itu ketika kita berbicara dengan santai.
‫Jika kami melakukan
‫gambar buruh pelabuhan ls, Anda perhatikan bahwa tidak ada kolom nama.
‫Selain ID gambar, siapa di antara kita yang tidak akan mengingatnya?
‫Kami harus merujuk mereka dengan tiga informasi yang berbeda.
‫Pada layar ini untuk perintah ls gambar, kita sebenarnya hanya melihat dua di antaranya. Di sebelah kiri, kita
‫melihat repositori,
‫lalu kita melihat tag. Repositori sebenarnya terdiri dari nama
‫pengguna atau organisasi yang memangkas repositori.
‫Di sini kita hanya berurusan dengan gambar repositori resmi sehingga
‫kita hanya akan melihat nama repositori yang sebenarnya.
‫Kami sebutkan sebelumnya bahwa gambar khusus yang dianggap resmi adalah satu-satunya yang mendapatkan
‫hak untuk hanya disebut nama repositori mereka, bukan nama sebenarnya dari repositori
‫slash organisasi.
‫Tetapi jika kita pergi ke Docker Hub, dan saya hanya melakukan pencarian di mysql, kita akan menemukan
‫bahwa sebenarnya ada organisasi, tidak hanya hanya mysql resmi, yang hanya disebut sebagai
‫mysql, tetapi ada organisasi SQL dengan sebuah mysql-server, yang tampaknya cukup populer juga, yah, itu
‫punya lebih dari satu juta unduhan. Sepertinya apa yang ada di sini adalah ini
‫sebenarnya server MySQL yang sama tetapi sebenarnya dibuat oleh tim MySQL di Oracle.
‫Jika saya benar-benar ingin mengunduhnya, Anda akan melihat di
‫sini di sebelah kanan, saya harus melakukan docker pull mysql / mysql-server. Saya benar-benar dapat mengklik
‫tombol salin dan saya salin ini. Ini sebenarnya akan mengunduh gambar berbasis organisasi yang unik ini dan
‫jika saya membuat gambar buruh pelabuhan lagi, Anda akan melihat bahwa nama repositori termasuk nama organisasi.
‫Di akun saya di Docker Hub, saya dikenal sebagai bretfisher. Anda bisa melihatnya dari kanan atas.
‫Jadi jika saya harus melihat dashboard saya dan melihat gambar saya yang saya
‫publik, misalnya, mari kita lihat nodemongoapp.
‫Jika Anda mengunduh ini,
‫saya perlu melakukan docker pull bretfisher / nodemongoapp.
‫Sekarang kita mengerti bagaimana repositori dinamai untuk apa tag itu dibuat?
‫Tag ini bukan versi dan bukan cabang, tetapi sangat mirip dengan tag Git.
‫Jadi agak sedikit dari keduanya.
‫Ini benar-benar hanya sebuah pointer ke komit gambar tertentu, dan benar-benar bisa apa saja, ke dalam repositori itu.
‫Jika kami kembali ke Docker Hub sebentar, dan kami naik ke gambar resmi mysql, Anda akan melihat di halaman depan
‫ada tag yang berbeda. Apa yang mereka coba katakan di sini adalah bahwa angka 8. 0. 0
‫dan 8. 0 dan 8 semuanya adalah tag untuk ID gambar yang sama.
‫Jika saya gulir ke sini dan melihat tombol tag, saya mendapatkan daftar lengkap lengkap dari semua berbagai tag
‫yang telah mereka berikan kepada mysql.
‫Jadi mari kita pergi ke Nginx, yang sering kami kerjakan.
‫Kita akan lihat di sini bahwa itu bukan hanya angka tetapi sebenarnya juga nama.
‫Penting untuk menunjukkan bahwa ini sebenarnya semua gambar yang sama persis
‫dan Docker cukup pintar untuk mengetahuinya. Saya pergi ke baris perintah saya dan saya melihat bahwa saya sudah memiliki nginx terbaru yang diunduh.
‫Jika saya melihat halaman web, saya melihat tag terbaru di sini tetapi juga disebut mainline.
‫Jadi bagaimana jika saya melakukan buruh pelabuhan menarik nginx: mainline? Apa ini memberitahu kita apakah sebenarnya sudah tahu bahwa berdasarkan ID gambar,
‫gambar ini sudah ada di cache saya. Sekarang jika saya membuat gambar buruh
‫pelabuhan lagi, saya akan melihat dua nginx berbeda. Anda akan melihat bahwa mereka memiliki ID gambar yang sama persis karena mereka tidak benar-benar disimpan dua
‫kali dalam cache dan, sekali lagi, ini kembali ke banyak penghematan. Tag ini hanya label yang
‫menunjuk ke ID gambar aktual dan kami dapat memiliki banyak dari mereka semua yang mengarah ke yang
‫sama.
‫Jadi, bagaimana cara membuat label baru?
‫Yah saya bisa membuat Dockerfile saya sendiri dan membuat gambar kustom saya sendiri, tetapi kita
‫juga dapat menandai ulang gambar Docker yang ada sehingga saya bisa melakukan tag
‫gambar buruh pelabuhan nginx bretfisher / nginx. Format dari perintah ini adalah gambar yang akan saya beri
‫tag baru terlebih dahulu, dan kemudian tag baru yang ingin saya berikan.
‫Jika saya melakukan tag gambar buruh pelabuhan --membantu lagi, hanya untuk menyegarkan kembali memori Anda, ini
‫menunjukkan SOURCE_IMAGE
‫dan tag opsional dan kemudian NEW_IMAGE tag opsional.
‫Jadi, jika Anda tidak menentukan tag, itu akan selalu default ke terbaru. Terbaru tidak selalu berarti terbaru karena saya secara
‫teknis bisa mengambil beberapa perangkat lunak lama dan menandainya terbaru.
‫Tidak ada yang istimewa tentang itu tetapi itu hanya semacam default. Sungguh, saya berharap mereka
‫hanya menyebutnya default dan bukan yang terbaru.
‫Jadi ini agak
‫membingungkan, tetapi umumnya di Hub Dock, terutama ketika Anda menggunakan gambar resmi, Anda dapat
‫percaya bahwa yang terbaru umumnya adalah versi stabil terbaru dari perangkat lunak yang ingin Anda gunakan.
‫Jadi mari kita lakukan gambar
‫buruh pelabuhan lagi. Perhatikan apa yang terjadi.
‫Saya telah menambahkan tag baru ke gambar yang ada yang tidak saya buat.
‫Ini menunjukkan ID gambar
‫yang sama dan sekarang dilabeli dengan nama pengguna saya dan repo baru yang belum ada di Docker Hub.
‫Jika kami pergi dan melihat dashboard
‫saya, saya tidak punya apa-apa yang disebut bretfisher / nginx.
‫Jadi bagaimana jika saya melakukan push gambar buruh pelabuhan, mirip dengan seperti dorongan Git, bretfisher / nginx?
‫ditolak: akses yang diminta ke sumber daya ditolak.
‫Jadi jelas mencoba mengunggah apa yang baru saja saya buat, itu mencoba mengunggah tag itu, tetapi memberi saya
‫akses ditolak.
‫Itu karena saya belum benar-benar masuk.
‫Jadi jika Anda melihat buruh pelabuhan --membantu Anda akan melihat perintah masuk dan keluar. Kami belum menggunakannya.
‫Jadi, sekali Anda memiliki akun Docker Hub gratis Anda sendiri, Anda dapat masuk dari command line docker login.
‫Jadi apa yang sebenarnya dilakukan adalah ada ini menulis ke file, yang secara default ada di profil saya di bawah cat. buruh pelabuhan / konfigurasi. json, dan itu benar-benar
‫menyimpan kunci otentikasi yang memungkinkan CLI buruh pelabuhan lokal saya untuk mengakses Docker Hub seperti
‫saya.
‫Ini adalah poin penting yang akan kita pelajari nanti dalam produksi adalah bahwa di
‫mana pun Anda login dengan Docker CLI, secara default, ini akan menyimpan kunci otentikasi ini untuk akun Anda
‫di profil pengguna itu.
‫Jadi sadari saja itu.
‫Jika Anda menggunakan mesin yang tidak Anda percayai, saat Anda selesai ketik saja docker logout.
‫Jadi sekarang kita masuk, saya akan menekan panah atas untuk mencoba mendorong gambar itu lagi.
‫BAIK.
‫Jadi sepertinya sudah selesai.
‫Mari kita pergi ke Docker Hub dan tekan refresh. Itu dia,
‫bretfisher / nginx. Sekali lagi, saya sebenarnya tidak harus membuat ini dari awal untuk mengunggahnya.
‫Saya hanya cukup memberi tag baru ke gambar yang ada dan ketika saya mengunggahnya, secara
‫otomatis membuat repo baru berdasarkan tag itu.
‫Tentu saja saya bisa mengisi semua informasi di sini, dan Anda akan melihat bahwa itu
‫default ke nama tag terbaru karena saya tidak menentukan satu. Jadi saya benar-benar bisa kembali dan melakukan hal
‫panah atas sampai saya mendapatkan tag saya dan saya benar-benar bisa memberikan tag yang berbeda.
‫Kami akan menambahkan tag tambahan ke gambar yang sama dan saya akan menyebutnya pengujian. Jika kita membuat gambar buruh pelabuhan ls,
‫Anda
‫akan melihat bahwa saya sekarang memiliki semua gambar dengan ID gambar yang sama.
‫Jika saya melakukan uji coba gambar docker bretfisher / nginx:, dan kali ini saya menentukan pengujian, perhatikan
‫bagaimana dikatakan lapisan sudah ada.
‫Itu bagian dari tingkat tabungan kami yang luar biasa.
‫Saat kami mengunduh dan mengunggah gambar, bahwa sudah ada lapisan yang ada, tidak akan repot
‫mengunggahnya kembali.
‫Jika kita kembali dan saya menekan refresh, Anda akan melihat bahwa saya sekarang memiliki tag lain.
‫Tapi tentu saja jika saya baru saja membuat gambar buruh pelabuhan, kita melihat seperti kita melihat bahwa itu adalah ID
‫gambar yang sama dan kedua sisi koneksi ini mengetahuinya. Jika saya ingin ini menjadi repositori pribadi, karena itu adalah
‫fitur yang didukung dari Docker Hub, yang mungkin ingin saya lakukan adalah membuat repositori terlebih dahulu, dan
‫ketika saya membuatnya, saya tentukan untuk itu menjadi pribadi.
‫Kemudian ketika saya mendorongnya, kode tidak akan pernah dipublikasikan di Internet.
‫Wow, ada banyak gambar dan tag mereka.
‫Jadi mari kita lakukan tinjauan singkat.
‫Seperti yang Anda lihat, Anda dapat memberi tag apa saja pada gambar tetapi gambar tersebut harus dalam
‫format tertentu agar dapat bekerja dengan Docker Hub. Anda tidak bisa begitu saja memanggil sesuatu nginx dan kemudian
‫mengunggahnya karena itu tidak akan berfungsi kecuali ia memiliki ID akun atau ID organisasi Anda di depannya.
‫Lalu saya berbicara tentang bagaimana Anda benar-benar dapat memiliki banyak tag untuk ID gambar yang sama dan hanya
‫karena Anda menandai ulang atau memberi tag berbeda pada gambar yang ada, itu tidak benar-benar mengubah ID gambar itu.
‫Ingat bahwa tag terbaru benar-benar hanya tag default.
‫Tidak ada yang secara inheren istimewa tentang hal itu, tapi kami berasumsi di Docker
‫Hub, ini cukup standar di sana, bahwa orang menggunakan tag terbaru sebagai cara untuk menunjukkan versi
‫stabil terbaru dari gambar mereka. Saya menunjukkan kepada Anda cara cepat masuk dan keluar dari Docker Hub dari CLI. Ingat bahwa itu menyimpan ID sesi
‫dalam konfigurasi lokal Anda jika Anda menggunakan mesin Linux dan Anda memastikan bahwa Anda logout untuk
‫menghapusnya jika Anda menggunakan
‫mesin Linux bersama atau host, seperti server. Kemudian, hanya pengingat, jika Anda ingin membuat
‫gambar Docker Hub pribadi, Anda mungkin harus membuat repositori terlebih dahulu sebelum Anda mengunggahnya.