Pendahuluan
Volume Docker banyak digunakan dan alat yang berguna untuk memastikan kegigihan data saat bekerja dalam container. Mereka adalah alternatif yang lebih baik daripada mengkompilasi lapisan tambahan yang dapat ditulis, yang meningkatkan ukuran gambar Docker.
Dalam tutorial ini, pelajari cara menggunakan Volume Docker dengan contoh praktis.
Apa itu Volume Docker?
Volume Docker adalah sistem file yang dipasang pada container Docker untuk menyimpan data yang dihasilkan oleh container yang sedang berjalan.
Volume disimpan di host, terlepas dari siklus hidup container. Hal ini memungkinkan pengguna untuk mencadangkan data dan berbagi sistem file antar container dengan mudah.
Memulai Dengan Volume Docker
Ada berbagai cara untuk memasang volume Docker saat meluncurkan wadah. Pengguna dapat memutuskan antara -v
dan --mount
flag, yang ditambahkan ke docker run
perintah.
Artikel ini menunjukkan contoh kedua flag yang digunakan.
Cara Membuat Volume Docker
Untuk membuat Volume Docker gunakan perintah:
docker volume create [volume_name]
Docker secara otomatis membuat direktori untuk volume pada host di bawah /var/lib/docker/volume/ jalur. Anda sekarang dapat memasang volume ini pada sebuah wadah, memastikan kegigihan data dan berbagi data di antara beberapa wadah.
Misalnya, untuk membuat volume dengan nama data , Anda akan menjalankan perintah:
docker volume create data
Mencantumkan Volume Docker
Untuk memverifikasi bahwa Anda telah berhasil membuat volume Docker, minta Docker untuk mencantumkan semua volume yang tersedia dengan:
docker volume list
Output menampilkan daftar volume, menentukan lokasinya (DRIVER ) dan NAMA VOLUME . Pada gambar di bawah, Anda dapat melihat volume data dibuat di bagian sebelumnya.
Memeriksa Volume Docker
Untuk melihat informasi lebih lanjut tentang volume Docker, gunakan inspect
perintah:
docker volume inspect [volume_name]
Ini mencantumkan detail volume, termasuk lokasinya di file host (Mountpoint ). Semua yang disimpan dalam volume data juga dapat ditemukan di direktori yang terdaftar di bawah jalur mountpoint.
Memasang Volume Data
Untuk memasang volume data ke wadah, tambahkan --mount
tandai ke docker run
memerintah. Itu menambahkan volume ke wadah yang ditentukan, di mana ia menyimpan data yang dihasilkan di dalam lingkungan virtual.
Untuk menjalankan wadah dan memasang volume data ke dalamnya, ikuti sintaks dasar:
docker run --mount source=[volume_name],destination=[path_in_container] [docker_image]
Ganti [path_in_container]
dengan jalur di mana Anda ingin menempatkan volume data dalam wadah. Semua yang disimpan di direktori itu juga secara otomatis disimpan di volume data di host.
Misalnya, untuk meluncurkan wadah Ubuntu dan memasang data volume untuk itu, jalankan:
docker run -it --name=example1 --mount source=data,destination=/data ubuntu
Perintah tersebut menginstruksikan Docker untuk menjalankan wadah dalam mode interaktif (-it
) dari gambar Ubuntu, dengan nama example1
, saat memasang data volume di /data
direktori di dalam wadah.
Kemudian, periksa untuk memverifikasi volume berhasil dipasang dengan mencantumkan konten wadah:
ls
Temukan volume Docker di bawah nama yang ditentukan saat meluncurkan wadah. Dalam contoh ini, ini adalah data .
Menyalin File Antar Kontainer Dari Volume Bersama
Mari kita lihat bagaimana volume Docker memungkinkan Anda berbagi file antar container.
Untuk melakukannya, kami menggunakan volume dan wadah yang dibuat di bagian sebelumnya. Ini termasuk menjalankan perintah:
docker volume create data
docker run -it --name=example1 --mount source=data,destination=/data ubuntu
1. Setelah Anda beralih ke prompt perintah container, pindah ke direktori volume data:
cd data
2. Buat file sampel kosong menggunakan perintah sentuh:
touch sample1.txt
3. Sekarang, keluar dari wadah:
exit
4. Kemudian, luncurkan penampung baru example2 dengan volume data yang sama:
docker run -it --name=example2 --mount source=data,destination=/data ubuntu
5. Buat daftar isi wadah. Anda harus menemukan direktori data, seperti dalam contoh1 :
ls
6. Pindah ke direktori data dan daftar isinya:
cd data
ls
Keluarannya harus mencantumkan sample1.txt file yang Anda buat di penampung sebelumnya (example1 ).
Memasang Direktori Host sebagai volume Data
Anda juga dapat memasang direktori yang ada dari mesin host ke wadah. Jenis volume ini disebut Volume Host .
Anda dapat memasang volume host dengan menggunakan -v
menandai dan menentukan nama direktori host.
Segala sesuatu di dalam direktori Host kemudian tersedia dalam wadah. Terlebih lagi, semua data yang dihasilkan di dalam wadah dan ditempatkan di volume data disimpan dengan aman di direktori host.
Sintaks dasar untuk memasang direktori host adalah:
docker run -v "$(pwd)":[volume_name] [docker_image]
"$(pwd)"
atribut menginstruksikan Docker untuk memasang direktori tempat pengguna saat ini berada.
Contoh berikut menjelaskan cara melakukannya.
1. Pertama, buat direktori sampel pada host dengan nama tmp dan pindah ke dalamnya:
mkdir tmp
cd tmp
2. Setelah berada di dalam direktori, buat file uji untuk melihat apakah itu akan tersedia dari wadah:
touch file.txt
2. Kemudian, gunakan docker run
perintah untuk meluncurkan wadah Ubuntu dengan direktori host terlampir padanya:
docker run -it -v "$(pwd)":/data1 ubuntu
Ini meluncurkan wadah dalam mode interaktif dan memasang volume dengan nama data1 .
3. Buat daftar konten penampung dan verifikasi bahwa ada data1 direktori:
ls
4. Buka direktori mount dan daftar konten. Outputnya akan menampilkan file yang Anda buat di host:
cd data1
ls
Izin dan Kepemilikan Volume
Van izin volume diubah dengan mengonfigurasi kepemilikan dalam Dockerfile.
Gunakan RUN
instruksi dan chown
perintah untuk mengatur izin volume Docker. Pastikan instruksi ini mendahului baris yang mendefinisikan VOLUME
.
Atau, Anda dapat mengubah kepemilikan direktori yang digunakan sebagai volume host.
Untuk petunjuk tentang cara menggunakan chown
perintah, lihat Tutorial Izin File Linux:Cara Memeriksa Dan Mengubah Izin.
Cara Menghapus Volume Docker
Untuk menghapus volume Docker, Anda perlu menentukan namanya.
Sintaks dasar untuk menghapus volume Docker di baris perintah adalah:
docker volume rm [volume_name]
Docker menghapus volume hanya jika tidak digunakan saat ini. Jika ada wadah dengan volume yang ditentukan, ia merespons dengan kesalahan. Untuk melanjutkan, hentikan dan keluarkan wadah lalu jalankan kembali docker volume rm
perintah.
Cara Menghapus Semua Volume Sekaligus
Untuk menghapus semua volume Docker yang tidak digunakan dengan satu perintah:
docker volume prune
Outputnya memperingatkan Anda bahwa itu akan menghapus semua volume lokal yang tidak digunakan oleh setidaknya satu wadah. Tekan y untuk melanjutkan.