‫Dalam kuliah ini, kita akan berbicara tentang bind mounting dan data persisten di mount tersebut. Persyaratannya adalah Anda hanya tahu
‫tentang manajemen wadah dan cara menjalankan wadah.
‫Mari kita melompat. Mari kita bicara tentang bind mounts. Mereka sebenarnya sangat keren.
‫Ketika saya pertama kali belajar tentang mereka, itu semacam memberi saya aha tentang bagaimana saya bisa menggunakan Docker dengan mudah untuk
‫pengembangan lokal.
‫Sebenarnya, bind mount hanyalah pemetaan dari file host, atau direktori, ke dalam file atau direktori
‫kontainer. Anda bisa melakukannya.
‫Anda dapat menentukan direktori atau hanya satu file. Di latar belakang, pada
‫dasarnya hanya memiliki dua lokasi menunjuk ke lokasi fisik yang sama pada disk.
‫Sekali lagi, ini benar-benar melewatkan UFS seperti volume lainnya lakukan sehingga itu tidak akan menghapus
‫lokasi host Anda ketika Anda menghapus wadah.
‫Jika ada file dalam wadah tempat Anda memetakan file host, file host akan menang. Sebenarnya tidak menghapus file dalam wadah
‫yang ditimpa karena itu tidak benar-benar menimpa apa pun dalam
‫wadah.
‫Itu hanya ada sementara bind mount ada.
‫Begitu Anda tidak memerlukan bind mount lagi dan Anda menjalankan kembali wadah tanpanya, Anda benar-benar
‫akan melihat data dasar yang ada di sana sebelumnya. Karena bind mounts biasanya khusus untuk host, mereka
‫membutuhkan data khusus untuk berada di hard drive host agar dapat bekerja.
‫Anda tidak dapat menentukannya di Dockerfile.
‫Anda harus menggunakannya saat runtime ketika Anda menggunakan perintah run docker container. Anda dapat melihat formatnya di
‫sini.
‫Ini benar-benar -v yang kita gunakan sebelumnya, hanya di sisi kiri titik
‫dua, kita sebenarnya menempatkan di jalur penuh daripada hanya nama.
‫Dan cara Docker benar-benar mengetahui perbedaan antara volume yang dinamai, seperti yang kami
‫lakukan beberapa waktu lalu, dan bind mount, adalah bind mount yang dimulai dengan garis miring.
‫Pada Windows, Anda akan melihat bahwa ini adalah dua garis miring ke depan dan kemudian huruf drive, dan kemudian
‫jalur Anda.
‫Selama Anda memiliki titik dua dan sisi kanan, Anda benar-benar dapat memetakan apa pun yang Anda inginkan
‫dari host ke dalam wadah, dan Anda juga dapat menentukan hal-hal seperti read-only.
‫Di mana ini benar-benar datang untuk bersinar adalah dengan pengembangan dan menjalankan layanan di dalam wadah
‫Anda yang mengakses file yang Anda gunakan pada host Anda atau berubah.
‫Mari kita lakukan dengan Nginx.
‫Jika Anda pergi ke root dari repositori kami untuk kursus ini, dan kemudian kita masuk ke direktori contoh
‫2 Dockerfile. Sekarang kami berada di sini sebelumnya.
‫Jika Anda ingat, ada dua file. Ini untuk Nginx, kan?
‫Jika kita melihat Dockerfile sangat cepat, itu sangat sederhana. Itu hanya menentukan direktori kerja dan kemudian menyalin
‫file indeks ke direktori itu.
‫Tidak ada volume di sini.
‫Bind mount tidak memerlukan volume untuk bekerja, meskipun orang pasti bisa berada di sana.
‫Tuan rumah selalu menang, ingat? Jadi, ketika kita melakukan menjalankan kontainer buruh pelabuhan, maka
‫kita melakukan -d ... beri nama nginx.
‫Mari berikan port 8080 seperti sebelumnya.
‫Maka kita akan memberikan volume kali ini. Dan saya perlu mengatakannya bahwa direktori kerja saya saat ini
‫akan benar-benar dipasang ke direktori kerja dalam wadah. Karena file indeks saya ada di sini di
‫folder ini, saya
‫ingin berada di wadah sehingga saya dapat mengeditnya di sini, dan itu terlihat langsung di wadah.
‫Jadi akan masuk akal dalam sedetik.
‫Ini sedikit tip cepat. Daripada saya harus mencari tahu
‫seluruh jalur saya dan mengetik semuanya, Anda dapat menggunakan pwd di sini seperti itu.
‫Yang merupakan jalan pintas shell yang mengatakan, 'cetak direktori yang berfungsi dan ganti perintah ini dengan jalur itu.
‫'Lalu kita hanya akan menggunakan direktori kerja yang sama dari Dockerfile di sana, dan kemudian kita
‫akan menentukan gambar Nginx.
‫Apa yang akan saya lakukan, sangat cepat, adalah saya sebenarnya akan membuka jendela terminal lain sehingga kita dapat
‫melakukan dua hal sekaligus.
‫Anda tidak perlu melakukan ini.
‫Pada dasarnya, kami hanya akan mengedit file pada host kami, dan kemudian saya akan berada di wadah dan melihat
‫apa yang terjadi.
‫Jadi hanya untuk memastikan itu berfungsi,
‫mari kita pergi ke localhost.
‫OK, jadi ini bukan file HTML Nginx default.
‫Dan kami menggunakan gambar Nginx biasa.
‫Kami sebenarnya tidak menggunakan yang khusus dari direktori ini.
‫Kami hanya menggunakan gambar stok. Untuk membuktikan hal itu, kita sebenarnya dapat melakukan hal
‫yang sama, perintah yang tepat lagi tetapi menghapus -v, dan saya akan menjalankannya di port 8080 sebagai gantinya. Dan saya akan menyebutnya nginx2.
‫Jika saya pergi ke browser saya dan pergi ke localhost 8080, itu adalah indeks nginx default. file html.
‫Yang ini adalah kebiasaan yang kita miliki di direktori ini.
‫Jadi, sudah bisa kita lihat bahwa itu memetakannya dengan benar.
‫Jika saya membuka tab lain di sini dan mendapatkan baris perintah di wadah.
‫Lalu pergi ke direktori itu.
‫Anda akan melihat bahwa kita sebenarnya dapat melihat Dockerfile karena kami memetakan seluruh direktori.
‫Jika di sebelah kiri, jika kita benar-benar membuat file baru dan saya bisa menggunakan perintah sentuh Linux di sini
‫untuk membuat file baru. Kemudian di sebelah kanan ... Ups ... teruslah lupa bahwa ... ls -al, dan Anda akan melihatnya
‫di file Anda.
‫Semoga Anda mengerti apa yang terjadi di sini, bahwa kedua lokasi ini adalah lokasi yang sama.
‫Dan jika saya menggemakan sesuatu ke file testme itu, dan
‫kemudian ...
‫ini dia.
‫Nginx kami dapat melihat perubahan karena itu hanya jalur file normal di wadah,
‫dan file-file itu ada di host.
‫Jika saya menghapusnya dalam wadah, mereka akan dihapus pada host karena itu adalah file yang
‫sama.
‫Ini adalah saat saya biasanya membuat pengembang berpikir tentang semua lingkungan pengembangan yang mereka
‫miliki yang merupakan pengaturan rumit ini. Mungkin mereka menggunakan Vagrant, atau metode manual lainnya
‫untuk mengatur lingkungan mereka yang sempurna, dan mereka dapat mulai melihat bagaimana ini bisa membuat itu menjadi jauh lebih sederhana.
‫Karena saya tidak perlu melakukan pengaturan rumit pada Mac saya, saya hanya menjalankan sebuah wadah.
‫Saya menggunakan perintah -v dengan mount, dan sekarang kode saya, pada host saya, dapat diedit pada host saya.
‫Dan saya benar-benar tidak perlu masuk ke cangkang wadah.
‫Biasanya, Anda bisa menjalankan wadah dan melihat log-nya untuk melihat apakah ada kesalahan saat
‫Anda coding.
‫Tentu saja, ini adalah contoh sederhana dengan Nginx. Kemudian, kita benar-benar akan memiliki contoh
‫spesifik dari lingkungan pengembangan yang berbeda untuk pengembangan lokal dan wadah.