‫Halo.
‫Video ini karena dua alasan.
‫Pertama, ini jika Anda tidak ingin menjalankan Docker secara lokal.
‫Anda ingin menjalankan Docker pada server dari jarak jauh, entah itu untuk produksi, penggunaan server lain,
‫atau hanya karena Anda tidak dapat menjalankan Docker secara lokal untuk sumber daya kinerja lisensi, Anda tahu Anda bukan
‫admin lokal.
‫Bisa jadi karena berbagai macam alasan.
‫Jadi ini adalah tentang mesin Docker untuk server Linux.
‫Alasan saya mengatakan bahwa mesin dan server adalah komponen kunci yang akan kita bahas di sepanjang video ini.
‫Video ini akan berfokus pada mendapatkan Docker yang paling mutakhir yang diinstal dari lokasi yang benar,
‫yang berbeda dari manajer paket Linux default Anda.
‫Kami kemudian akan memastikan bahwa suplai dipasang di mana pun Anda akan mengoperasikannya dari sehingga
‫tidak ssh ing ke server sepanjang waktu.
‫Kita sebenarnya akan mengaturnya sehingga kita bisa mengendalikannya dari jarak jauh, manakah cara terbaik untuk
‫menjalankan mesin Docker pada server Linux?
‫Dan sedikit disclaimer, jika Anda belum menonton video sebelumnya, yaitu tentang
‫Docker desktop untuk desktop Linux, ini bukan itu.
‫Ini sebelum kami memiliki Docker desktop, kami hanya memiliki mesin Docker.
‫Setiap desktop Docker memiliki mesin Docker di dalamnya.
‫Docker mengelola untuk Anda, tetapi mesin Docker, ini adalah biner tunggal yang disebut Docker D atau Docker Daemon, dan yang
‫dapat beroperasi pada server Linux apa pun.
‫Selama Anda memiliki kernel Linux, Anda dapat menjalankan hal yang sama.
‫Anda bisa menjalankannya di Windows Server, Docker RD ESXi yang sebenarnya bisa berjalan sebagai layanan di server Windows untuk menjalankan
‫Windows Containers.
‫Tetapi, kita tidak akan membicarakan hal itu dalam video ini.
‫Jadi, desktop Docker, itu untuk dijalankan pada sistem lokal Anda, itu benar-benar hanya untuk penggunaan lokal
‫Docker.
‫Tetapi ini adalah mesin Docker yang dapat berjalan di sistem Linux apa pun, baik itu lokal atau jarak
‫jauh, apakah itu VM atau server fisik, itu adalah Raspberry Pi, apa pun itu.
‫Jika menjalankan kernel Linux, maka kernel itu ada dalam daftar dan Docker memiliki daftar yang kompatibel dari build yang didukung yang telah teruji dan mereka tahu
‫bahwa build tersebut berfungsi.
‫Tidak semua distribusi Linux di luar sana.
‫Ini tidak termasuk BSD, yang secara teknis bukan Linux, dan itu benar-benar hanya berfokus pada
‫yang besar, Anda tahu, Central West, topi merah, Ubuntu, Debian, hal-hal semacam itu.
‫Dan ada berbagai arsitektur yang akan didukungnya.
‫Jadi sebagai referensi dalam video ini, Anda akan melihat tautan ke halaman ini yang menunjukkan daftar
‫distribusi Linux yang saat ini didukung untuk mesin.
‫Saya tentu saja akan menggunakan Docker pada Ubuntu, distribusi Linux server favorit saya dan saya akan memandu Anda
‫melaluinya.
‫Saya akan mengabaikan detailnya karena sebenarnya Anda hanya akan membaca ini atau menjalankan skripnya, yang akan
‫kita bicarakan selanjutnya.
‫Sekarang, ya, saya memberi Anda tautan sebagai sumber daya untuk video ini untuk semua dokumentasi seputar semua
‫cara menginstalnya di varian Linux, distribusi seperti Ubuntu, Fedora, dan yang lainnya.
‫Tetapi sebenarnya cara termudah untuk melakukan ini sebagian besar waktu hanyalah menjalankan skrip.
‫Jika Anda mengetik di browser Anda, dapatkan Docker.
‫Itu akan memberi Anda skrip shell yang dapat Anda lihat, Anda dapat mengunduh, Anda dapat menjalankannya secara otomatis.
‫Dengan Curl, pada dasarnya dimaksudkan untuk memberi Anda pengaturan yang tepat dan menghapus instalan hal-hal lama, menginstal hal-hal
‫baru, memastikan Anda mendapatkan sumber yang tepat dan semua hal itu sekaligus.
‫Begitulah cara saya selalu memasang Docker, sejak saya mempelajarinya, jauh di awal
‫proyek ini.
‫Jadi mungkin untuk belajar, mungkin pertama kali Anda menginstal Docker di server Linux, Anda mengikuti dokumentasi
‫yang melewati langkah demi langkah dengan manajer paket Anda.
‫Mungkin apt, mungkin yum, mungkin APK, tergantung pada apa yang Anda lakukan pada distro Linux Anda.
‫Tetapi saya akan menggunakan skrip ini, yang lebih mudah.
‫Ini pada dasarnya adalah menggulung skrip ke dalam sebuah file dan kemudian menjalankan file itu dengan shell.
‫Dan inilah yang persis seperti skrip itu, jika Anda pergi ke slide terakhir, itu akan memberitahu Anda untuk menyalin dan menempelkannya dan
‫menyalinnya ke bawah dan kemudian menjalankannya.
‫Jadi kita melakukan itu dan itu akan mencari tahu distribusi mana yang saya gunakan, versi distribusi
‫itu, apakah mereka didukung itu akan terhubung dalam hal ini apt ke manajer paket dengan kunci untuk memastikan Anda mendapatkan
‫yang benar.
‫Repositori untuk instalasi Anda, dan kemudian perintah itu berjalan selama beberapa menit tergantung pada seberapa cepat server
‫Anda.
‫Dan kemudian Anda berakhir di sini kembali pada prompt shell Anda dengan baris perintah Docker, mesin Docker
‫atau Daemon dan beberapa utilitas lainnya.
‫Biasanya dilengkapi dengan beberapa plug ins seperti build kit untuk membangun gambar, compose untuk menjalankannya.
‫Kita akan membahas semua itu dalam kursus ini.
‫Jadi, sadari saja bahwa mungkin ada empat atau lima binari yang mengambang di sekitar sistem Anda.
‫Sekarang, seperti semua cara lain yang dapat Anda instal Docker, lakukan perintah versi ruang Docker, ketik
‫perintah itu di shell Anda, dan Anda akan mendapatkan kembali setidaknya klien baris perintah dan versi server.
‫Ketika Anda mendapatkan kembali versi server itu, itu berarti Anda dapat berbicara dengan API server di server itu.
‫Jika Anda berada di shell server, maka secara teknis berbicara dengan host lokal menggunakan soket.
‫Saya hanya ingin mengingatkan Anda bahwa semua yang baru saja Anda lakukan di sana adalah open source, mesin
‫Docker, baris perintah Docker, semua plug ins di sana.
‫Semua itu sepenuhnya open source.
‫Namun, desktop Docker berlisensi Apache, dari video sebelumnya termasuk semua hal ini serta perangkat
‫lunak sumber tertutup atau berlisensi dari Docker.
‫Docker desktop lebih merupakan superset dari sekumpulan hal yang berbeda.
‫Mesin Docker yang kita pasang di sini hanyalah minimum.
‫Ini adalah daemon yang Anda perlukan untuk menjalankan kontainer di Docker.
‫Dan sebagai pengingat, seperti yang telah saya lakukan di video-video sebelumnya, jika Anda menggunakan perintah login Docker
‫karena Anda hanya memiliki akses baris perintah di sini, jika Anda mengetikkan ruang Docker, masuk, Anda dapat
‫masuk dengan ID Docker Anda dan itu akan memberi Anda lebih banyak kolam.
‫Jika Anda ingat, pools adalah hal-hal dari beberapa video pertama dalam kursus ini yang berisi perangkat lunak.
‫Anda menarik image dan kemudian Anda menjalankannya sebagai container dan Anda melakukannya beberapa kali.
‫Dan Docker pada akhirnya mungkin akan mengeluh dan berkata, Hei, lihat, Anda telah melampaui dan saya pikir
‫angka saat ini sekitar 106 jam.
‫Dikatakan bahwa Anda telah melampaui jumlah kolam.
‫Nah, jika Anda berada di belakang firewall perusahaan dan semua orang di perusahaan Anda semuanya menggunakan
‫Docker dan mereka semua berada di belakang satu alamat IP, batas itu dapat dicapai dengan cepat.
‫Tetapi jika Anda cukup masuk, Docker memberi Anda setidaknya dua kali lipat jumlah tarikan secara gratis dengan akun gratis jika Anda membayar
‫untuk Docker, yang tidak harus Anda lakukan dengan kursus ini, tetapi jika Anda ingin membayar
‫Docker untuk langganan Docker, Anda akan mendapatkan, saya pikir, pool tak terbatas selama Anda masuk dengan
‫akun itu.
‫Tetapi, mari kita lanjutkan ke pengendalian daemon ini secara lokal.
‫Sekarang, apa yang akan terjadi di sini adalah sistem apa pun yang akan Anda gunakan, katakanlah ini adalah
‫penyiapan server, atau bisa jadi Anda tidak ingin menjalankan Docker pada mesin lokal Anda.
‫Mungkin Anda tidak diizinkan, mungkin Anda tidak bisa.
‫Mungkin Anda tidak memiliki cukup sumber daya.
‫Mungkin Anda tidak melakukan root pada mesin lokal Anda.
‫Tetapi Anda memiliki kemampuan untuk menjalankan Docker pada mesin jarak jauh ini.
‫Nah, Anda tidak perlu duduk di shell pada mesin jarak jauh itu dan mengetik semua perintah Anda di sana dan melakukan semua
‫pekerjaan kode sumber Anda di sana atau mengkloning repo untuk kursus ini.
‫Anda tidak bisa melakukan apa pun di sana.
‫Anda bisa mengabaikannya.
‫Anda sebenarnya dapat menginstal Docker di sana dan kita akan berbicara dengannya dari jarak jauh.
‫Sekarang, mari kita kembali sejenak.
‫Bertahun-tahun yang lalu, sebelum fitur SSH tunnel ini ada sekitar tahun 2018, maka sebelumnya Anda harus melakukan
‫ssh ke server dan melakukan segalanya di server dan itu terkadang menyebalkan karena Anda harus menyalin
‫barang-barang Anda dan itu tidak bagus.
‫Anda memiliki segala sesuatu yang lain secara lokal, Anda memiliki editor kode Anda, mungkin Anda menggunakan kode
‫Visual Studio dan Anda memiliki kode sumber Anda untuk kelas ini dan Anda punya barang di sini, bukan?
‫Jadi, idealnya Anda ingin melakukan semua pekerjaan itu pada mesin lokal Anda.
‫Docker memecahkan hal itu ketika pertama kali keluar pada tahun 2013.
‫Satu-satunya cara yang bisa kami lakukan adalah melalui port TCP, yang tidak memiliki otentikasi bawaan
‫dan secara default tidak menyediakan enkripsi untuk koneksi.
‫Jadi secara umum dianggap sebagai cara yang buruk untuk terhubung ke Docker.
‫Itu adalah sesuatu yang hanya ingin Anda lakukan pada jaringan yang aman, dan terutama karena tidak diautentikasi.
‫Secara teknis bisa memungkinkan Anda akses root jarak jauh ke server jika Anda hanya sekadar tersambung dari mana saja
‫yang memiliki akses ke port itu, itu ide yang buruk.
‫Jadi Docker kemudian menambahkan fitur baru ini di dalamnya bahwa kita dapat dengan mudah melakukan koneksi SSH transparan
‫selama Anda dapat SSH ke server itu dan memiliki otentikasi atau sertifikat, sebaiknya untuk SSH ke server
‫itu.
‫Anda bisa melakukannya dan Anda tidak perlu melewati rintangan atau mengekspos port tambahan apa pun.
‫Jadi itulah yang akan kita lakukan.
‫Jadi langkah ini di sini adalah untuk mendapatkan klien baris perintah Docker pada sistem apa pun yang akan
‫Anda gunakan untuk bekerja dan itu bisa di Windows, Mac, Linux, Raspberry, PI, apa pun.
‫Dapatkan saja klien baris perintah jika Anda menggunakan mac.
‫Anehnya, pemasang brew, yang jika Anda tidak tahu tentang brew, Anda melewatkan pemasang
‫terbaik untuk Mac dan Brew install Docker tidak benar-benar menginstal mesin Docker penuh atau desktop Docker.
‫Itu hanya menginstal klien karena mereka.
‫Tidak ada mesin Docker untuk Mac.
‫Kernel Mac tidak mendukung container, jadi instalasinya secara mengejutkan hanya menginstal baris perintah, yang dalam hal ini adalah
‫apa yang kita inginkan.
‫Jika mesin lokal Anda adalah Linux, Anda dapat menggunakan paket instalasi Linux dari dokumentasi
‫Dockers dan kemudian setelah Anda menyiapkan paket itu sebagai repositori, Anda kemudian dapat menginstal paket Docker
‫CCI dari repositori itu.
‫Dan terakhir, jika Anda menggunakan Windows, Anda mungkin pernah mendengar tentang Chocolaty.
‫Itu adalah salah satu package manager untuk Windows saat ini.
‫Dan Anda bisa melakukan instalasi chocolatey untuk menginstal klien baris perintah saja.
‫Tetapi Docker juga telah menjelaskan semua ini dalam dokumentasi mereka di mana mereka memberi tahu Anda bagaimana
‫Anda bisa mendapatkan pustaka klien untuk sistem operasi Anda dan hanya pustaka klien.
‫Baiklah.
‫Momen kebenaran.
‫Anda telah menginstal mesin Docker pada server Linux.
‫Terlepas dari untuk apa Anda akan menggunakannya, apakah itu hanya untuk latihan atau untuk
‫produksi nyata, Anda punya Docker di server, Anda sekarang punya klien di Southern, mesin lokal Anda.
‫Saya harus mengingatkan Anda bahwa semua hal yang baru saja saya beritahukan kepada Anda tentang menginstal klien, jika Anda
‫sudah menginstal Docker desktop, Anda tidak perlu melakukan itu.
‫Docker desktop hadir dengan klien, tetapi kita dapat memberi tahu klien ke mana harus mengarahkan ke mana harus berbicara dengan mesin
‫server dan itulah yang akan kita lakukan sekarang.
‫Jadi bayangkan saya bisa mengatakan ke dalam server dengan sesuatu seperti perintah ini di sini, ssh route pada alamat IP atau
‫nama host.
‫Dan katakanlah saya memiliki sertifikat SSH.
‫Jadi, semua ini mengasumsikan bahwa Anda memahami dasar-dasar SSH yang Anda tahu cara mendapatkan sertifikat pada server
‫sehingga Anda bisa log masuk dari jarak jauh.
‫Ada banyak sekali tutorial di luar sana tentang itu dan pengetahuan itu diasumsikan.
‫Sekali lagi, pengetahuan dasar Linux diasumsikan sebelum Anda terlibat dengan Docker.
‫Jadi dengan asumsi bahwa kita bisa melakukan itu, jika saya memiliki akses itu, maka yang perlu saya lakukan adalah membuat variabel
‫lingkungan.
‫Variabel lingkungan host garis bawah Docker memberi tahu baris perintah Docker server mana yang akan diajak bicara secara
‫default.
‫Jika Anda baru saja menginstal Docker pada sesuatu dan mulai menggunakan baris perintah, Docker mengasumsikan soket
‫lokal atau host lokal.
‫Dan bahkan tidak memiliki variabel lingkungan ini.
‫Dan secara default, jika kosong, variabel lingkungan ini, meskipun Docker mencoba mencarinya dan tidak
‫menemukannya, Docker akan berkata, oke, Anda harus berasumsi bahwa saya perlu berbicara dengan host lokal dan itu
‫akan melakukannya dengan baik.
‫Tetapi jika kita mengubah ini dengan menambahkan export docker host sama dengan ssh colon slash slash seperti yang akan Anda
‫gunakan dalam URL https.
‫Jadi jika kita ganti dengan slash username ssh colon's slash di hostname, maka saya bisa terjun dengan docker hanya dengan mengetikkan
‫perintah docker biasa.
‫Jadi perhatikan saya mengetikkan versi docker di sini, tetapi saya tidak memiliki Docker yang berjalan di mesin lokal saya.
‫Saya baru saja memiliki klien Docker dan sudah melakukan SSH melalui internet ke instance cloud jarak jauh yang baru saja
‫saya siapkan beberapa saat yang lalu dan mengembalikan versi server serta versi klien.
‫Jika Anda mulai mengaduk-aduk, Anda sebenarnya akan melihat bahwa saya menggunakan Darwin, yaitu Mac
‫OS untuk klien saya dan jika kita gulir ke bawah, server akan menampilkan Linux karena di situlah server
‫menjalankan mesin dan hanya itu.
‫Hanya itu yang perlu Anda lakukan.
‫Jika Anda ingin menghapus variabel lingkungan host underscore Docker, maka baris perintah Docker Anda akan kembali ke mesin lokal
‫Anda, dengan asumsi bahwa Anda memiliki mesin yang berjalan secara lokal dan Anda dapat beralih
‫bolak-balik.
‫Bahkan, Anda bisa memiliki banyak server yang berbeda dan hanya mengubah variabel lingkungan di setiap shell yang
‫Anda gunakan untuk memberitahukan server mana yang akan diajak bicara.
‫Ada perintah konteks Docker yang juga dapat melakukan ini.
‫Kita belum akan membicarakan hal itu.
‫Itu lebih lanjut untuk nanti dalam kursus ini, tetapi secara teknis ada perintah bawaan yang disebut
‫konteks Docker yang memungkinkan Anda untuk menyimpan pengaturan ini dan mengelola daftar mesin yang berbeda yang ingin Anda
‫ajak bicara.
‫Tapi yang satu ini sangat bagus untuk memulai, dan langkah terakhir di sini adalah mengkloning repositori Anda untuk kursus ini
‫secara lokal, salah satu yang disebutkan beberapa kuliah di belakang dalam kuliah tertulis di mana ada repo kursus
‫yang Anda unduh, Anda ingin meletakkannya di mesin lokal Anda bersama dengan editor kode Anda
‫dan yang lainnya dan klien Docker.
‫Satu-satunya hal yang akan berada di server adalah mesin yang kita pasang dan kita tidak perlu melakukan
‫ssh ke dalamnya terus-menerus karena semua perintah Docker yang kita jalankan secara lokal hanya akan dijalankan terhadap server
‫jarak jauh itu.
‫Server jarak jauh itu.
‫Ngomong-ngomong, ingatlah kapan pun saya mengetik host lokal di browser saya untuk menguji berbagai hal di Docker, seperti
‫mungkin situs web atau sesuatu yang kita jalankan di Docker, Anda tidak akan mengetik host lokal,
‫Anda akan mengetik nama host server atau alamat IP tempat Anda menginstal Docker.
‫Itulah mesin yang menjalankan mesin, menjalankan kontainer Anda, dan yang perlu Anda ketik
‫di browser Anda.
‫Atau jika Anda menjalankan perintah lokal lainnya seperti curl atau ping, Anda harus melakukannya
‫pada IP server tersebut.
‫Anda sekarang memiliki mesin yang berjalan pada server Linux di suatu tempat di dunia.
‫Anda berjalan di sistem lokal Anda dengan kode dan repo Anda dan yang lainnya, dan Anda siap
‫untuk memulai.