‫Bagian ini akan penuh dengan kuliah dan tugas seputar data persisten.
‫Pertama, kita akan membahas masalah data persisten dan bagaimana hal itu
‫bahkan menjadi masalah.
‫Konsep-konsep kunci di sana yang perlu Anda pahami adalah gagasan infrastruktur yang tidak berubah.
‫Dan ide tentang wadah secara alami fana dalam desain.
‫Kami akan membahasnya di kuliah pertama. Lalu kami akan menyelami volume data dan bagaimana mereka
‫memecahkan beberapa masalah kami di sekitar data persisten. Kemudian kita juga akan menggali bind mounts dan bagaimana hal
‫itu menyelesaikan masalah yang berbeda dengan data persisten. Kemudian kita akan mengakhiri bagian ini dengan beberapa penugasan seputar
‫cara menyimpan data basis data, sambil mengganti wadah untuk basis data. Dan kemudian juga sekitar benar-benar memasang
‫kode ke dalam wadah dari host saat Anda sedang mengeditnya, sehingga Anda
‫dapat menjalankan kode itu di dalam wadah langsung. Persyaratan untuk kuliah pertama ini hanya memahami cara menjalankan
‫wadah, dan konsep wadah dan gambar yang telah kita bahas sejauh ini.
‫Sampai sekarang, Anda hanya khawatir tentang apa yang diperlukan untuk menjalankan sebuah wadah, bukan data unik yang mungkin dibuat
‫begitu sebuah wadah berjalan.
‫Wadah dimaksudkan untuk menjadi abadi dan tidak kekal.
‫Itu hanya kata kunci mewah untuk tidak berubah dan sementara, atau sekali pakai.
‫Idenya di sini adalah kita bisa membuang wadah dan membuat yang baru dari sebuah gambar,
‫bukan?
‫Maka kita tidak berbicara tentang batasan aktual wadah, tetapi lebih pada tujuan desain, atau
‫praktik terbaik.
‫Ini adalah gagasan infrastruktur tidak berubah di mana kita tidak mengubah hal-hal begitu mereka berjalan.
‫Jika perubahan konfigurasi perlu terjadi, atau mungkin peningkatan versi wadah perlu dilakukan, maka kami memindahkan kembali
‫wadah yang sama sekali baru.
‫Ini memberi kita manfaat besar dalam keandalan dan konsistensi, dan membuat perubahan dapat direproduksi.
‫Tapi ada kompromi.
‫Bagaimana dengan data unik yang akan dihasilkan aplikasi Anda? Database itu, atau nilai kunci disimpan, atau apa pun yang
‫aplikasi Anda keluarkan ke dalam file?
‫Idealnya, wadah tidak boleh berisi data unik Anda dicampur dengan biner aplikasi. Ini dikenal sebagai "pemisahan keprihatinan"
‫dan Docker sebenarnya memberi kita manfaat besar di sini.
‫Kami dapat memperbarui aplikasi kami dengan membuat ulang wadah baru, dengan versi terbaru dari aplikasi kami, dan idealnya, data unik
‫kami masih berada di tempat yang seharusnya dan disimpan untuk kami saat wadah kami didaur ulang.
‫Jika Anda belum menyadarinya, kontainer yang kami gunakan, secara default, tetap ada.
‫Setiap perubahan di dalamnya sebenarnya disimpan di restart dan reboot sampai kami menghapus wadah.
‫Hanya karena kami menghentikan wadah atau me-restart host,
‫bukan berarti perubahan file kontainer hilang.
‫Hanya ketika kita menghapus wadah, lapisan UFS-nya hilang, tetapi kita ingin bisa melakukannya
‫sesuka hati.
‫Masalah data unik ini dikenal di industri sebagai "data persisten" dan hingga kontainer, kami
‫tidak benar-benar memiliki nama untuk itu. Karena, yah, sebagian besar hal yang kami bangun bersifat persisten,
‫seperti Anda tahu server lama yang telah menjalankan aplikasi lama itu selama lima atau 10 tahun atau lebih.
‫Semuanya gigih secara default.
‫Sekarang di dunia baru kontainer dan penskalaan otomatis aplikasi, data yang persisten menciptakan
‫masalah unik.
‫Docker memiliki dua solusi untuk masalah ini, yang
‫dikenal sebagai "volume data" dan "bind mounts. "Volume Docker adalah opsi konfigurasi
‫untuk sebuah wadah yang menciptakan lokasi khusus di luar sistem
‫file penyatuan penyimpan itu untuk menyimpan data unik.
‫Ini menyimpannya di seluruh pemindahan kontainer dan memungkinkan kami untuk menempelkannya ke wadah apa pun yang kita inginkan.
‫Dan wadah hanya melihatnya seperti jalur file lokal.
‫Lalu ada bind mounts, yang hanya kita bagikan atau pasang direktori host, atau file, ke sebuah wadah.
‫Sekali lagi, itu hanya akan terlihat seperti jalur file lokal, atau jalur direktori, ke wadah.
‫Sebenarnya tidak akan tahu bahwa itu berasal dari tuan rumah.