我正在使用 Docker 17.06.0-ce,并尝试在容器中挂载 CIFS 共享文件,但遇到了一些问题。如果我使用
有什么变化导致现在需要在这些类型的挂载中始终使用
--privileged
,它可以工作,但这对我来说不是理想的选择。我尝试了使用 --cap-add
,如此答案所建议的(甚至尝试使用--cap-add ALL
),但都没有成功。
相同的挂载命令在主机系统上也可以正常工作。
以下是我尝试修改的一个简单的 Docker 文件:
FROM alpine:latest
RUN apk add --no-cache cifs-utils
以许多不同的排列方式运行,所有结果如下:
有效:
docker run --rm -it --privileged cifs-test /bin/sh
无效:
docker run --rm -it --cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH cifs-test /bin/sh
无效:
docker run --rm -it --cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH --cap-add NET_ADMIN cifs-test /bin/sh
无效:
docker run --rm -it --cap-add ALL cifs-test /bin/sh
还有以下命令:
mkdir /test && mount.cifs //myserver/testpath /test -o user=auser,password=somepass,domain=mydomain
除第一个run
命令外,每个命令的结果如下:
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
有什么变化导致现在需要在这些类型的挂载中始终使用
--privileged
吗?还是我漏掉了其他的东西?