Docker 如何使用 NFS Volume,多个容器使用 NFS Volume 的便捷用法。
文中方法适合 docker 17.06 之后版本,使用docker version
确认。
在容器创建时使用下面命令直接挂载:
1
2
3
| docker run -it --name nfs-test \
--mount 'type=volume,source=nfsvolume,target=/mnt,volume-driver=local,volume-opt=type=nfs,volume-opt=device=:/rxt68s30,"volume-opt=o=addr=172.21.0.99,rw,vers=3,nolock,proto=tcp,noresvport"' \
alpine ash
|
查看生成的 volume 信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| # docker volume inspect nfsvolume
[
{
"CreatedAt": "2021-09-22T14:22:27+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/nfsvolume/_data",
"Name": "nfsvolume",
"Options": {
"device": ":/rxt68s30",
"o": "addr=172.21.0.99,rw,vers=3,nolock,proto=tcp,noresvport",
"type": "nfs"
},
"Scope": "local"
}
]
|
这里 volume 详细信息里会有默认的 Mountpoint 地址 [/var/lib/docker/volumes/nfsvolume/_data
],容器启动后,在宿主机上该位置也可以访问到 nfs 里挂载的文件内容,可以延伸出更多用法。
参考上面生成信息,来手动创建 nfs volume:
1
2
3
4
5
| docker volume create nfsvolume \
-d local \
-o type=nfs \
-o o=addr=172.21.0.99,rw,vers=3,nolock,proto=tcp,noresvport \
-o device=:/rxt68s30
|
启动容器时,映射使用 nfsvolume :
1
| docker run --rm -v nfsvolume:/mnt alpine ls /mnt
|
Done!