限制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正在做你想做的事情。