限制Docker容器的文件访问
假设我在Docker容器中有NodeJS应用程序。 NodeJS可以使用fs
模块与主机的文件系统进行交互。 我想要的只是给它访问一个文件夹(例如, / home / user1 / thisfolder ),并拒绝读/写我的主机上的任何其他文件夹或文件。 在Docker中有没有限制这种访问的方法?
UPD GOT答案:使用AppArmor我可以给node
进程只能访问给定的目录,当它试图访问任何其他 – 它获得permission denied
。
您要使用的解决scheme是使用-v选项在容器上安装卷。
docker run -v /path/to/directory/on/your/host:/path/to/directory/on/your/container image CMD
它会让你访问你的音量。
更多信息: https : //docs.docker.com/userguide/dockervolumes/
如果你想限制访问你的容器的其他部分,你应该从容器外使用Apparmor。
除非你做了以下事情,否则Docker不能访问主机文件系统:
- 将一些path映射到一个卷(如上面提到的@Regan)
- 在特权模式下运行
所以,默认情况下,docker正在做你想做的事情。