‫Nah, halo?
‫Atau haruskah saya mengucapkan selamat datang di masa depan manajemen perangkat lunak dengan Docker dan perkakas kontainer?
‫Video ini khusus tentang Docker.
‫Itu memiliki banyak alat selama bertahun-tahun, tetapi video ini adalah tentang tiga inovasi utama
‫yang memulai seluruh evolusi perangkat lunak Docker pada tahun 2013.
‫Itu terutama tiga hal gambar Docker, registri Docker, dan kemudian wadah Docker.
‫Sebagian besar dari kita, ketika memikirkan Docker, kita memikirkan wadahnya.
‫Namun ketiga inovasi ini berjalan bersama seperti roti dan mentega, dan mereka menyebutnya Add, Docker, build,
‫ship run.
‫Itu adalah tiga langkah untuk mengambil perangkat lunak ID non-wadah yang sebelumnya, mengubahnya menjadi gambar buruh pelabuhan, meletakkannya di registri,
‫membawanya ke mana pun Anda perlu menjalankannya dan akhirnya membuat wadah darinya.
‫Faktanya, Ciencia untuk Cloud Native Computing Foundation, yang akan dibicarakan oleh banyak alat di seluruh
‫video saya, produk dan alat serta alur kerja tersebut membuat asumsi dalam banyak kasus
‫bahwa Anda menggunakan alur kerja container, proses pembuatan kapal .
‫Jadi mari kita uraikan ini dan apa sebenarnya ketiganya.
‫Pertama, gambar kontainer dan saya suka menganggapnya sebagai pembuat paket aplikasi universal dan kami memiliki banyak pengelola
‫paket selama bertahun-tahun.
‫Sebenarnya, saya telah kehilangan hitungan dan saya telah berada di sekitar semua manajer paket, tetapi tidak pernah
‫ada sesuatu yang dapat saya ingat yang telah lintas-platform OS dan agnostik bahasa aplikasi, yang berarti itu akan berjalan di mana-mana dan
‫itu berjalan pada apa pun selama itu menjalankan Linux atau Windows.
‫Sekarang mari kita lihat file Docker dengan cepat, yang merupakan resep atau kumpulan instruksi untuk membuat image container, image
‫docker, dan image container adalah istilah yang sama untuk hal yang sama.
‫Faktanya, spesifikasi gambar Docker sangat populer, sekarang menjadi standar yang dikenal sebagai standar gambar
‫OCI.
‫Jadi Anda melihat satu set instruksi dan setiap file Docker membutuhkan dari untuk memulai.
‫Kita bisa mulai dari citra orang lain.
‫Kami dapat memiliki banyak gambar dari, banyak dari.
‫Jadi kita akan membahas semua kerumitan itu nanti.
‫Tapi kami mulai dengan python di sini dan kami turun.
‫Sebenarnya, kita mulai dengan ini sebagai lapisan.
‫Masing-masing dari perintah ini dalam file Docker kadang-kadang disebut bait dengan huruf kapital, termasuk dari dan
‫kemudian menjalankan dan bekerja dengan cara mereka ke bawah karena memprosesnya dari atas ke
‫bawah akan membuat lapisan yang dipindahkan di sekitar server sebagai tarball.
‫Dan di dalam lapisan itu ada file, direktori, dan izin file, dan terkadang metadata yang akan kita bahas
‫nanti.
‫Ketika saya mulai membangun gambar ini, itu akan memulai baris pertama itu dan mencari gambar Python dari Docker Hub atau dari
‫mana pun saya menyuruhnya untuk mendapatkan gambar itu.
‫Dan itu hanya termasuk Python, itu binari dan perpustakaannya.
‫Itu tidak mengandung driver host atau kernel Linux atau apa pun di luar apa yang perlu dijalankan Python.
‫Jika Python membutuhkan SSL terbuka, maka itu termasuk dalam lapisan gambar itu.
‫Kemudian kita dapat melanjutkan ke baris berikutnya dari file Docker.
‫Itu adalah perintah PIP untuk penginstal ketergantungan Python dan itu menginstal labu.
‫Jadi itu akan memulai layer baru yang menambahkan labu seperti yang Anda lakukan dengan perintah instal pip normal.
‫Faktanya, apa yang terjadi di latar belakang adalah mengeksekusi wadah kecil cepat untuk masing-masing lapisan ini, menjalankan
‫perintah atau melakukan apa pun yang perlu Anda lakukan di dalam lapisan itu,
‫dan kemudian menyimpannya sebagai lokasi berbeda di host Linux yang membangun ini.
‫Jadi kita menumpuk lapisan di sini dan kemudian kita pergi ke baris berikutnya, perintah salin, pekerjaan.
‫Hanya ada perubahan metadata.
‫Itu hanya mengubah lokasi di sistem file, bukan masalah besar.
‫Perintah salin menyalin kode sumber kita dari host yang sedang kita bangun ke dalam lapisannya sendiri yang ditumpuk di atas
‫yang lain.
‫Ini bersama-sama membentuk gambar menggunakan perintah docker build.
‫Ini adalah salah satu hal tentang Docker yang menjadi sangat mudah digunakan karena kami hanya membutuhkan
‫perintah build Docker sederhana ini untuk mengambil banyak hal rumit yang terjadi di file Docker dan mengubahnya menjadi
‫satu gambar.
‫Itu hanya aplikasi kami dan hanya dependensi yang dibutuhkan dan tidak ada yang lain.
‫Itulah bagian pertama dari build ship run yang sedang dibangun oleh Docker.
‫Selanjutnya, mari kita bicara tentang registri.
‫Registri Docker adalah untuk distribusi aplikasi.
‫Setiap sistem pengemasan aplikasi memiliki cara untuk mendapatkan paket-paket itu dan registri Docker tidak
‫berbeda sekarang.
‫Itu hanya dikenal sebagai spesifikasi distribusi OCI atau spesifikasi registri OCI.
‫Jadi ini adalah standar lagi di seluruh industri tentang cara memindahkan gambar kontainer.
‫Dan itu ada di mana-mana.
‫Setiap awan memiliki satu.
‫Hub Docker adalah default dan mungkin yang paling populer.
‫GitHub memiliki satu Bitbucket GitLab.
‫Mereka semua memiliki pendaftar gambar mereka sendiri dan Anda dapat menjalankannya sendiri.
‫Mungkin setidaknya ada selusin proyek perangkat lunak gratis, sumber terbuka, dan berbayar yang memungkinkan Anda
‫menyimpan gambar Docker di dalamnya.
‫Jadi mari kita uraikan cara kerjanya.
‫Pertama, kami memiliki gambar yang baru saja kami buat, dan gambar itu memiliki hash sha unik yang mengidentifikasi semua lapisan itu bersama-sama
‫sedemikian rupa sehingga kami dapat menjamin bahwa jika kami melihat hash pada dua sistem yang berbeda, kami dapat yakin
‫bahwa itu adalah file yang sama persis, data meta yang sama persis yang baru saja kita buat.
‫Lapisan gambar itu berjalan bersama dan mendistribusikan diri mereka sendiri.
‫Kita dapat menggunakan sesuatu seperti Docker Push untuk mengambil layer image tersebut dan mendorongnya ke registry.
‫Anda dapat menggunakan salah satu dari banyak registri, seperti yang saya sebutkan, tetapi begitu ada di sana,
‫Anda dapat pergi ke komputer lain dan melakukan tarikan Docker, yang akan menarik salinan identik dari gambar itu ke bawah pada mesin itu, seperti yang
‫telah kami buat di mesin pertama.
‫Dan ini adalah salah satu prinsip inti Docker, adalah bahwa kami dapat mengambil perangkat
‫lunak yang kami buat di satu mesin dengan semua dependensinya dan menjalankannya dengan cara yang sama di sistem lain
‫yang mungkin merupakan distribusi Linux yang sama sekali berbeda. atau Windows.
‫Jika Anda menggunakan Linux dan Anda membuat image Linux yang harus berjalan di Linux karena menjalankan binari Linux.
‫Jika Anda membangunnya di CentOS dan Anda menjalankannya di Bonita, itu akan menjadi aplikasi dan dependensi yang sama persis
‫terlepas dari distribusi itu.
‫Akhirnya, kita sampai ke wadah Docker itu sendiri.
‫Setelah kami melakukan semua langkah membangun gambar, meletakkannya di lokasi, kami dapat mengaksesnya dari
‫server kami dan kemudian mengunduhnya ke server kami.
‫Kita bisa menjalankannya.
‫Mari kita bayangkan kita memiliki server yang menjalankan Linux.
‫Mungkin menjalankan Windows, tetapi dalam kasus ini kami hanya akan fokus pada Linux.
‫Ini akan membuat Docker berjalan di latar belakang yang dikenal sebagai mesin Docker.
‫Dan mesin pada mesin tunggal ini akan mengatur atau mengelola semua hal berbeda yang
‫perlu terjadi untuk mengunduh gambar, memverifikasi bahwa itu adalah hal yang tepat yang dimaksudkan untuk diunduh,
‫dan akhirnya menjalankannya.
‫Kemudian kita mendapatkan gambar yang baru saja kita unduh dengan polling Docker dan kemudian kita akan menjalankan perintah.
‫Anda tidak terlalu penting untuk mempelajari perintahnya, tetapi ini adalah perintah menjalankan Docker.
‫Ini adalah bagian run dari build ship run.
‫Dan dalam kasus ini, kami menjalankan aplikasi Python itu dalam wadahnya sendiri.
‫Wadah itu dikenal sebagai namespace.
‫Itulah fitur Linux yang mencegah aplikasi yang berjalan di wadah ini agar tidak melihat
‫sistem operasi lainnya.
‫Itu mendapat sistem file kosongnya sendiri, dan itu hanya akan menyertakan file yang ada di gambar yang baru saja kita
‫buat.
‫Itu akan mendapatkan alamat IP sendiri dan nic virtualnya sendiri dan daftar prosesnya sendiri dan pada dasarnya terlihat seperti
‫sistemnya sendiri di dalam sana.
‫Kemudian jika kita menjalankan perintah Docker run itu lagi dengan nama gambar atau hash gambar kita, maka kita mendapatkan
‫wadah identik yang berjalan berdampingan.
‫Sekarang kedua proses ini terisolasi satu sama lain.
‫Jadi aplikasi Python, wadah satu tidak bisa melihat aplikasi Python dan wadah dua.
‫Dan jika Anda mengubah file dalam wadah ke wadah, tidak akan melihat file itu secara default.
‫Jika kami menambahkan server kedua dengan instance kedua dari mesin Docker yang berjalan dan melakukan hal yang sama, kami dapat
‫memiliki pengaturan yang sangat tersedia dengan aplikasi kami, berjalan berkali-kali untuk redundansi atau kinerja yang lebih baik atau apa
‫pun alasan kami untuk menjalankan lebih banyak dari salah satu dari mereka.
‫Mereka akan identik dari sudut pandang sistem file, izin, dan metadata.
‫Sekarang, ada banyak lagi yang bisa kita pelajari tentang hal ini, itulah sebabnya kursus yang saya miliki
‫sekarang sangat panjang.
‫Tapi ini masih tiga hal yang tidak berubah setelah Docker.
‫Pertama dikonseptualisasikan mereka.
‫Ide membangun kapal yang dijalankan adalah salah satu prinsip inti kontainer dan helm Kubernetes.
‫Anda memberi nama proyek di ekosistem asli cloud dan itu mungkin mengasumsikan Anda memiliki jenis
‫alur kerja yang khas ini untuk mengeluarkan aplikasi Anda dari tangan pengembang Anda ke dalam sistem pengujian dan akhirnya
‫ke server produksi.
‫Ini adalah tiga langkah yang sama, jadi mudah-mudahan ini mulai meresap sedikit sehingga Anda mengerti mengapa ini
‫adalah tiga komponen utama.
‫Bahkan hari ini, bertahun-tahun setelah semua ini ditemukan, mari kita cari tahu apa selanjutnya.