Docker Volume
Volume adalah cara untuk persistensi data di luar container. Data yang disimpan dalam volume tidak akan hilang saat container dihapus atau di-restart. Ini sangat berguna untuk menyimpan data seperti database, file konfigurasi, atau hasil build.
Cara kerja volume:
Pembuatan volume: Saat Anda mendefinisikan volume dalam file docker-compose.yml, Docker akan membuat volume dengan nama yang diberikan.
Pemasangan volume: Volume kemudian di-mount ke direktori tertentu di dalam container.
Persistensi data: Data yang ditulis ke direktori yang di-mount akan disimpan di volume.
Cara Mendefinisikan Volume dalam Docker Compose
Anda dapat mendefinisikan volume dalam file docker-compose.yml dengan cara sebagai berikut:
version: '3.7'
services:
web:
build: .
volumes:
- my_volume:/var/www/html
volumes:
my_volume:Penjelasan:
volumesdi bawahservices: Menentukan volume mana yang akan di-mount ke container.my_volume:/var/www/html: Mendefinisikan bahwa volumemy_volumeakan di-mount ke direktori/var/www/htmldi dalam containerweb.volumesdi level atas: Mendefinisikan volume secara global.
Cara Kerja Volume
Pembuatan Volume: Saat Anda menjalankan
docker-compose up, Docker akan membuat volume dengan nama yang Anda tentukan (dalam contoh ini,my_volume).Pemasangan Volume: Volume kemudian di-mount ke direktori yang ditentukan dalam layanan.
Persistensi Data: Setiap perubahan yang Anda buat pada data di dalam direktori yang di-mount akan disimpan dalam volume.
Jenis-Jenis Volume
Named Volumes: Volume yang didefinisikan dengan nama dan dikelola oleh Docker.
Anonymous Volumes: Volume yang dibuat secara otomatis tanpa nama yang spesifik.
Bind Mounts: Mem-mount direktori dari host ke container. Tidak disarankan untuk produksi karena ketergantungan pada struktur direktori host.
Contoh Penggunaan Volume
Database: Simpan data database PostgreSQL dalam volume untuk persistensi.
File Konfigurasi: Simpan file konfigurasi aplikasi dalam volume untuk memudahkan pengelolaan.
Hasil Build: Simpan hasil build aplikasi dalam volume untuk digunakan oleh layanan lain.
Keuntungan Menggunakan Volume
Fleksibel: Mudah untuk menambahkan, menghapus, atau mengubah volume.
Scalable: Volume dapat di-mount ke banyak container.
Backup dan Restore: Mudah untuk membuat backup dan restore data dalam volume.
Best Practices untuk Menggunakan Volume
Gunakan Named Volumes: Lebih mudah dikelola dan di-backup.
Hindari Bind Mounts: Kecuali untuk keperluan pengembangan.
Pertimbangkan Ukuran Volume: Jangan membuat volume terlalu besar untuk menghindari pemborosan ruang.
Gunakan Label untuk Organisasi: Berikan label pada volume untuk memudahkan pencarian.
Last updated