Advertisement

Membuat dan Mengelola Docker Volumes – Jangan Sampai Data Hilang!

 File:Docker (container engine) logo.svg

“Kok dataku hilang pas container dimatikan?!”
– Seorang developer yang baru kenal Docker, episode kesekian

Kalau kamu sering pakai Docker, pasti pernah mengalami kejadian "kok data tiba-tiba hilang?" setiap kali container dihentikan atau dihapus. Jangan panik! Ini bukan karena komputer kamu kerasukan, tapi karena Docker container bersifat ephemeral alias sementara.

Jadi, bagaimana cara menyimpan data agar tetap aman walaupun container dihentikan?
Jawabannya: Docker Volumes!

Di artikel ini, kita akan belajar:
  Apa itu Docker Volume dan kenapa penting?
  Cara membuat, menggunakan, dan menghapus volume di Docker
  Perbedaan volume dengan bind mount
  Tips & trik supaya data tidak hilang!

Langsung aja kita mulai!

1. Apa Itu Docker Volume dan Kenapa Penting?

Docker volume adalah cara paling direkomendasikan untuk menyimpan data dalam Docker.
Kenapa? Karena:

 Data tetap ada meskipun container dihentikan atau dihapus.
  Lebih aman & fleksibel dibanding bind mount.
  Dikelola oleh Docker, jadi lebih optimal dan mudah digunakan.

Contohnya, kalau kamu pakai database seperti MySQL dalam Docker, semua data akan disimpan di dalam volume, sehingga aman walaupun container dihapus.

Tanpa volume:  Data hilang saat container dihapus
Dengan volume:  Data tetap aman walau container dihapus

2. Cara Membuat dan Menggunakan Docker Volume

A. Membuat Volume Baru

Sebelum digunakan, kita bisa membuat volume dengan perintah berikut:

docker volume create my_volume

 Selamat! Kamu baru saja membuat volume pertama kamu.

B. Menjalankan Container dengan Volume

Sekarang, kita gunakan volume ini di dalam container.

 Contoh: Menjalankan MySQL dengan volume

docker run -d -p 3306:3306 \
  -v my_volume:/var/lib/mysql \
  --name mysql-container mysql:latest

 Penjelasan:

  • -v my_volume:/var/lib/mysql → Menghubungkan volume my_volume ke folder /var/lib/mysql di dalam container.
  • Semua data MySQL akan disimpan di my_volume, jadi aman walaupun container dihapus!

C. Melihat Daftar Volume yang Ada

Kita bisa mengecek semua volume yang telah dibuat dengan:

docker volume ls

 Hasilnya mungkin seperti ini:

DRIVER    VOLUME NAME
local     my_volume
local     another_volume

 Artinya: Semua volume ini tersimpan dengan aman!

D. Melihat Detail Volume

Kalau mau lihat detail dari sebuah volume:

docker volume inspect my_volume

 Hasilnya bisa seperti ini:

[
    {
        "Name": "my_volume",
        "Driver": "local",
        "Mountpoint": "/var/lib/docker/volumes/my_volume/_data",
        "CreatedAt": "2025-02-01T12:34:56Z",
        "Labels": {},
        "Scope": "local"
    }
]

 Artinya:

  • Volume my_volume tersimpan di /var/lib/docker/volumes/my_volume/_data di dalam sistem host.
  • Semua data yang disimpan di volume ini tidak akan hilang walaupun container dihapus!

E. Menghapus Volume

Kalau volume sudah tidak diperlukan, kita bisa menghapusnya dengan:

docker volume rm my_volume

 Hati-hati!
Volume yang sudah dihapus tidak bisa dikembalikan! Pastikan kamu tidak menghapus data penting!

F. Menghapus Semua Volume yang Tidak Digunakan

Kalau banyak volume yang sudah tidak terpakai, bisa dihapus sekaligus dengan:

docker volume prune

 Konfirmasi akan muncul seperti ini:

WARNING! This will remove all unused volumes. Are you sure you want to continue? [y/N]

 Ketik y, lalu tekan Enter untuk membersihkan semua volume yang tidak digunakan.

3. Perbedaan Docker Volume vs Bind Mount

Fitur Docker Volume Bind Mount
Dikelola oleh Docker? ✔️ Iya ❌ Tidak
Portabilitas ✔️ Bisa digunakan di berbagai container ❌ Terkait ke path di host
Keamanan ✔️ Lebih aman karena terisolasi ❌ Bisa mengakses semua file host
Performa ✔️ Lebih optimal di Docker ❌ Tergantung pada sistem file host
Cocok untuk? Data aplikasi seperti database Mengakses file langsung dari host

Kesimpulan:

  • Gunakan Docker Volume untuk penyimpanan jangka panjang dan aman.
  • Gunakan Bind Mount jika perlu akses langsung ke file dari sistem host.

4. Troubleshooting: Masalah Umum dengan Docker Volume

 Kasus 1: Volume Tidak Bisa Diakses dari Container

 Error:

Permission denied when accessing volume

 Solusi:

  • Pastikan container dijalankan dengan user yang punya akses ke volume.
  • Coba jalankan container dengan flag --user $(id -u):$(id -g).

 Kasus 2: Data Hilang Setelah Restart Container

 Error:

Data is missing after restarting container

 Solusi:

  • Pastikan kamu menggunakan volume, bukan menyimpan data di dalam container saja.
  • Gunakan perintah docker volume ls untuk melihat daftar volume yang ada.

5. Kesimpulan: Jangan Biarkan Data Hilang Lagi!

 Intinya:
  Docker volume adalah cara terbaik untuk menyimpan data dalam container.
  Gunakan docker volume create untuk membuat volume baru.
  Gunakan docker run -v volume_name:/path_dalam_container untuk menggunakan volume.
  Gunakan docker volume prune untuk membersihkan volume yang tidak terpakai.

Dengan memahami cara membuat dan mengelola Docker volumes, kamu bisa menghindari kehilangan data yang bikin stres dan memastikan aplikasi berjalan lancar.

Post a Comment

0 Comments