Docker NFS實作方法
Docker要掛載遠端NFS SERVER的資料夾,在本地必須要有一個NFS Client以及設定為掛載遠端的Volume。
建立NFS SERVER的Container
- 下載Docker NFS Server Image
docker pull fuzzle/docker-nfs-server
- 由Image實例Container
docker run -d --privileged --restart=always \
-v /tmp:/nfs \
-e NFS_EXPORT_DIR_1=/nfs \
-e NFS_EXPORT_DOMAIN_1=\* \
-e NFS_EXPORT_OPTIONS_1=rw,insecure,no_subtree_check,no_root_squash,fsid=1 \
-p 111:111 -p 111:111/udp \
-p 2049:2049 -p 2049:2049/udp \
-p 32765:32765 -p 32765:32765/udp \
-p 32766:32766 -p 32766:32766/udp \
-p 32767:32767 -p 32767:32767/udp \
fuzzle/docker-nfs-server:latest
本地建立指向NFS SERVER的Volume
- 創建一個volume,指向NFS Server,並取名為nfs_vol
docker volume create --driver local \
--opt type=nfs \
--opt o=addr=192.168.99.100,rw \
--opt device=:/nfs \
nfs_vol
nfs_vol用於給本地的Container掛載,通過nfs_vol,本地的Container可以共享使用這個volume
本地建立NFS Client的Container
- 下載Docker Client Image
docker pull outstand/nfs-client
- 由Image實例Container
docker run -itd \
--name nfs-client \
--restart=always \
--privileged=true \
--net=host \
-v /:/mnt/host \
-e SERVER=192.168.99.100 \
-e SHARE=/nfs \
-e MOUNT_OPTIONS="nfsvers=3,rw" \
-e FSTYPE=nfs \
-e MOUNTPOINT=/mnt/host/nfs \
outstand/nfs-client
Container掛載NFS範例(busybox)
- 下載取得busybox Image
docker pull busybox
- 由Image實例Container
docker run -itd --name busybox_demo -v nfs_vol:/mnt/host/nfs busybox
將nfs_vol這個Volume掛載到本地的/mnt/host/nfs底下