PRESISTENT DATA & DOCKER VOLUME
B.Config Changes – Jika diharuskan untuk mengubah config atau update image, kita harus melakukan redeploy dengan container yang baru
C.Benefit – Reability dan Consistency serta membuat perubahan dapat di reproduce Bagaimana Docker Menyimpan Data
Secara default semua file atau data yang di create di dalam container akan tersimpan dalam sebuah layer yang disebut Writeable Container Layer
1.Data tidak bertahan, ketika container sudah tidak ada atau tidak
berjalan
2.Sulit untuk dibagikan, susah untuk mengakses data dari luar container ketika ada prosess lain yang membutuhkannya
3.Sangat bergantung pada host machine dimana container di jalankan dan tidak mudah untuk memindahkan data ke tempat lain
Bagaimana dengan Unique Data (input dan upload data) yang dibuat melalui aplikasi berbasis docker, ada beberapa karateristik dari data di docker.
B.Accessible Unique Data, Data unuk haru tetap bisa diakses walaupun
container di recycle (rebuild dan rerun)
D.Persistent by Default, Unique data secara default tersimpan secara persisten sampai container di remove. Menstop dan melakukan restart host tidak akan menghilangkan unique data
1.Unique Data, harus disimpan di host machine, sehingga data akan selalu tersimpan dan accessible walaupun container suda di stop dan di remove
4.Volumes – disimpan pada host filesystem yang dimanage secara langsung oleh docker (/var/lib/docker/volumes/ pada Linux) non docker proses tidak bisa memodifikasi volume ini
Dibuat dan dikelola oleh Docker. Anda dapat
membuat volume secara eksplisit menggunakan docker volume create perintah, atau
Docker dapat membuat volume selama pembuatan kontainer atau layanan. Saat Anda
membuat volume, volume tersebut disimpan dalam direktori di host Docker. Saat
Anda memasang volume ke dalam penampung, direktori inilah yang dipasang ke
dalam penampung. Ini mirip dengan cara kerja bind mount, kecuali bahwa volume
dikelola oleh Docker dan diisolasi dari fungsionalitas inti mesin host. Volume
tertentu dapat dipasang ke beberapa kontainer secara bersamaan. Saat tidak ada
container yang berjalan yang menggunakan volume, volume tersebut masih tersedia
untuk Docker dan tidak dihapus secara otomatis. Anda dapat menghapus volume
yang tidak digunakan menggunakan docker volume prune. Saat Anda memasang
volume, itu mungkin bernama atau anonim . Volume anonim tidak diberi nama
eksplisit saat pertama kali dipasang ke dalam container, jadi Docker memberi
mereka nama acak yang dijamin unik dalam host Docker tertentu. Selain nama,
volume bernama dan anonim berperilaku dengan cara yang sama.Volume juga
mendukung penggunaan driver volume, yang memungkinkan Anda menyimpan data di
host jarak jauh atau penyedia cloud, di antara kemungkinan lainnya.
Contoh penggunaan Volume pada Image MYSQL
Untuk menggunakan volume kita akan
menggunakan latest tag : MYSQL DOCKERFILE
Instal terlebih dahulu dengan code seperti
dibawah ( Jika sudah bisa dilewat step ini)
Inspect Docker Image,
jalankan pada terminal dengan menggunakan perntah
lihat pada bagian ContainerConfigVolumes
Run MySQL image
sebagai container
Lalu
inspect container mysqldb
Pada pagian
mounts akan muncul tampilan seperti gambar dibawah
Volumes – Custome Name
Lalu kita akan run MySQL image dengan menambahkan opsi –v yang berguna untuk menentukan volume yang akan digunakan
B. Bind
mounts
Tersedia sejak awal
Docker. Bind mount memiliki fungsionalitas terbatas dibandingkan volume. Saat
Anda menggunakan bind mount, file atau direktori di mesin host dipasang ke
dalam container. File atau direktori direferensikan oleh jalur lengkapnya di
mesin host. File atau direktori tidak harus sudah ada di host Docker. Itu
dibuat sesuai permintaan jika belum ada. Bind mount sangat berkinerja, tetapi
mereka bergantung pada sistem file mesin host yang memiliki struktur direktori
tertentu yang tersedia. Jika Anda mengembangkan aplikasi Docker baru,
pertimbangkan untuk menggunakan volume bernama sebagai gantinya. Anda tidak
dapat menggunakan perintah Docker CLI untuk langsung mengelola bind mount.
Contoh penggunaan Bind
Mount
Masuk ke shell
container nginx2 menggunakan perintah
Lalu buat file dengan menggunakan perintah touch about-us.html
Lalu rubah file
tersebut dan isi dengan page yang diinginkan
Dan kembali buka pada
browser maka hasilnya seperti ini
Komentar
Posting Komentar