假设我在Docker容器中有NodeJS应用程序。 NodeJS可以使用fs
模块与主机的文件系统进行交互。我想要的是只允许它访问一个文件夹(例如, / home / user1 / thisfolder ),并拒绝在我的主机上读/写任何其他文件夹或文件。有没有办法在Docker中限制这种访问?
UPD GOT ANSWER:
使用AppArmor我可以让node
进程只访问给定目录,当它尝试访问任何其他目录时,它会获得permission denied
。
答案 0 :(得分:1)
您要使用的解决方案是使用-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。
答案 1 :(得分:1)
除非您:
,否则Docker无权访问主机文件系统因此,默认情况下,docker正在执行您想要的操作。