Docker Volume

Docker Volume

Docker volume adalah sebuah storage yang memungkinkan sebuah image untuk share sebuah datastore

Pada tutorial sebelumnya memulai docker dengan container kita telah belajar bagaimana membuat sebuah container. Kali ini saya akan membahas tentang Docker Volume, oke langsung saja scroll kebawah…


Apa itu Docker Volume?

Pada dasarnya semua file yang dibuat di dalam sebuah container disimpan kedalam sebuah layer yang bersifat read-only dimana:

  • Data tidak akan bertahan pada sebuah container apabila container tersebut terhapus atau hilang dan mungkin akan sulit untuk mendapatkan data dari container jika proses lain membutuhkannya.
  • Sebuah container yang telah ditulis dan terintegrasi dengan sebuah mesin host dimana container itu berjalan akan sangat sulit memindahkan data tersebut ketempat lain.

Docker memiliki dua opsi pada container untuk menyimpan file di mesin host, sehingga file tetap ada sekalipun container berhenti yaitu dengan menggunakan volume, dan binding mounts, untuk ilustrasinya dapat dilihat pada gambar dibawah ini.

  • Volume : disimpan di bagian sistem file host yang dikelola oleh Docker yang berlokasi pada /var/lib/docker/volumes/
  • Bind Mounts: disimpan dimanapun di dalam sistem sebuah host, artinya sistem penyimpanan ini di luar dari sistem docker, sehingga proses lain diluar Docker dapat memanipulasi storage jenis ini

Langsung saja kita praktikan…

Pada tutorial kali ini kita akan menggunakan sebuah MySQL Image makadari itu silahkan kalian pull Mysql Image dari Docker Hub.

Membuat sebuah container volume

Perhatikan sintaks dibawah ini pada argumen --env kita akan memberikan default password pada mysql dengan password kalian bisa isi terserah kalian. Kemudian pada argumen -v disitu terdapat 2 opsi yang diapit tanda : dimana harus kalian masukkan yang pertama adalah nama volume, dalam kasus kali ini saya beri nama dengan mysql_data kalian bisa menamakan terserah, kemudian pada opsi kedua masukkan lokasi volume yang ada di dalam image, untuk mysql lokasi volumenya sendiri berada pada /var/lib/mysql.

docker container create --name mysqldb2 --env MYSQL_ROOT_PASSWORD=password -v mysql_data:/var/lib/mysql -p 3307:3306 mysql

Bagaimana kita mengetahui lokasi volume ?

Ada 2 cara bagaimana kalian dapat mengetahui lokasi Volume yang pertama adalah menggunakan perintah docker inspect nama_image

docker inspect mysql

maka akan menampilkan informasi dari sebuah image seperti gambar di bawah, maka pada key volumes disana akan menunjukkan dimana lokasi volume dari sebuah image.

Cara yang kedua adalah dengan mengunjungi docker hub mysql kemudian scroll kebawah pada bagian where to store data maka disana akan terlihat (lihat argumen -v) /my/own/datadir:/var/lib/mysql.

Terakhir

Setelah semua penjelasan diatas kalian pahami dan praktikan, sekarang kalian jalankan container tersebut

docker container start mysqldb2

Kemudian coba kalian inspect container yang berjalan itu kemudian cari key Mounts , maka disana kalian akan melihat bahwa mount volume telah berhasil ditambahkan.

docker inspect mysqldb2

kemudian kalian coba connect dengan menggunakan software database management seperti Navicat

Penutup

Demikian tutorial singkat tentang docker volume ini, semoga tercerahkan dan tetap semagat jangan lupa untuk mencoba berbagai macam image yang ada di docker hub.

Terimakasih

Newsletter Updates

Enter your email address below to subscribe to our newsletter

Leave a Reply