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.
--driver
opsi mendefinisikanlocal
driver volume, yang menerima opsi yang mirip denganmount
perintah di Linux.--opt
opsi 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.