我正在尝试运行一个从 NFS 挂载获取数据的 docker,其趋势如下:
docker -v /mnt/nfs1:/input ...
但我收到了如下错误:
docker:守护进程的错误响应:创建挂载源路径“/mnt/nfs1/input/large_files/quickstart-output”时出错:mkdir /mnt/nfs1/input:权限被拒绝。
NFS 挂载点以非 root 用户身份挂载,并在服务器配置上设置了 root-squash。我无法更改这一点。
添加也--user 12345
没有任何效果。
另外,尝试从 docker 内部以该用户身份挂载 NFS 也不起作用,可能是因为 IP 与允许的 IP 不一样(?)
有人能告诉我这是否可行吗?如果可行,我该如何解决这个问题?谢谢!
答案1
看起来我解决了它......大致如下:
docker volume create --driver local --opt type=nfs \
--opt o=addr=nfs.server.com,ro --opt device=:/complete/path nfs_input
docker volume create --driver local --opt type=nfs \
--opt o=addr=nfs.server.com,rw --opt device=:/other/complete/path nfs_output
docker run \
--user 12345:12345 \
--mount source=nfs_input,target=/input \
--mount source=nfs_output,target=/output \
my_docker_image ....