Pendahuluan
Volume Docker adalah mekanisme yang lebih disukai untuk menyiapkan penyimpanan persisten untuk container Docker Anda. Volume adalah direktori yang ada pada sistem file host yang dipasang di dalam wadah. Mereka dapat diakses baik dari wadah dan sistem host.
Docker juga memungkinkan pengguna untuk memasang direktori yang dibagikan melalui sistem berbagi file jarak jauh NFS. Volume yang dibuat untuk tujuan ini menggunakan driver NFS Docker sendiri, menghilangkan kebutuhan untuk memasang direktori NFS pada sistem host.
Tutorial ini akan menunjukkan cara membuat dan menggunakan NFS Docker Volumes.
Prasyarat
- Server NFS diinstal dan dikonfigurasi pada mesin jarak jauh.
- Docker diinstal pada mesin lokal.
- Akun pengguna dengan hak akses root/sudo.
Buat Volume Docker NFS
Cara paling sederhana untuk membuat dan mengelola volume Docker adalah menggunakan docker volume perintah dan sub-perintahnya.
Sintaks untuk membuat volume NFS Docker mencakup dua opsi.
--driveropsi mendefinisikanlocaldriver volume, yang menerima opsi yang mirip denganmountperintah di Linux.--optopsi dipanggil beberapa kali untuk memberikan detail lebih lanjut tentang volume.
Detailnya meliputi:
- Jenis volume.
- Mode tulis.
- IP atau alamat web server NFS jarak jauh.
- Jalur ke direktori bersama di server.
docker volume create --driver local \
--opt type=nfs \
--opt o=addr=[ip-address],rw \
--opt device=:[path-to-directory] \
[volume-name]
Contoh di bawah mengilustrasikan pembuatan volume Docker NFS bernama nfs-volume . Volume berisi /mnt/nfsdir direktori yang terletak di server, dengan rw (baca/tulis) izin. Alamat IP server adalah 10.240.12.70 .
Perintah yang berhasil dijalankan menampilkan nama volume.
Cantumkan volume Docker yang tersedia.
docker volume ls Outputnya mencantumkan volume yang Anda buat.
Periksa volume dengan inspect sub-perintah.
docker volume inspect [volume-name] Output menunjukkan konfigurasi volume.
Pasang NFS Dalam Wadah
Untuk memasang volume NFS ke dalam wadah, instal nfs-common paket pada sistem host.
Mulailah dengan memperbarui repositori.
sudo apt update
Gunakan APT untuk menginstal nfs-common paket.
sudo apt install nfs-common Konfirmasikan bahwa Anda ingin menginstal paket dan tunggu hingga instalasi selesai.
Gunakan perintah docker run untuk memulai container. Tentukan volume NFS dan titik pemasangan di --mount bagian.
docker run -d -it \
--name [container-name] \
--mount source=[volume-name],target=[mount-point]\
[image-name]
Contoh di bawah memasang volume NFS bernama nfs-volume ke /mnt direktori dalam wadah.
Konfirmasikan bahwa volume berhasil dipasang dengan menggunakan docker inspect perintah.
docker inspect [container-name]
Mounts bagian output berisi volume yang dipasang ke dalam wadah.
Masukkan shell bash lingkungan wadah dengan docker exec :
docker exec -it [container-name] /bin/bash
Buat daftar isi /mnt direktori.
ls /mnt
Output menunjukkan file yang dihosting di /mnt/nfsdir direktori di server.
Jika Anda membuat file di dalam wadah Docker, itu juga akan dapat diakses di direktori asli di server. Untuk menguji, gunakan perintah sentuh untuk membuat file kosong di /mnt direktori.
touch /mnt/docker1.txt Di server, navigasikan ke direktori yang Anda bagikan dan daftarkan isinya. File yang dibuat di wadah Docker muncul.
Memasang Volume NFS dengan Docker Compose
Jika Anda menggunakan Docker Compose untuk mengelola container Anda, pasang volume NFS dengan mendefinisikannya di file YML.
Buat file YML.
nano docker-compose.yml
Tentukan volume NFS di volumes bagian.
version: "3.2"
services:
[service-name]:
image: [docker-image]
ports:
- "[port]:[port]"
volumes:
- type: volume
source: [volume-name]
target: /nfs
volume:
nocopy: true
volumes:
[volume-name]:
driver_opts:
type: "nfs"
o: "addr=[ip-address],nolock,soft,rw"
device: ":[path-to-directory]"
Buat dan mulai wadah dengan docker-compose up perintah.