防止Docker容器内的用户读取/写入文件

时间:2019-06-23 08:29:22

标签: docker

我想要一个“沙盒”泊坞窗容器,该容器运行只处理stdin / stderr / stdout的小型不受信任的代码。

我想限制对容器内文件的读写访问。我想知道是否可以用更一般的方式而不是chmod-ding?

用例的详细信息:

我可以使用没有对主目录的写访问权的专用用户来创建简单映像:

FROM alpine:3.10
RUN mkdir /home/sandbox && \
    adduser -DH -h /home/sandbox sandbox
WORKDIR /home/sandbox

假设我还在运行映像时添加了内存和cpu限制,并且还禁用了网络...

然后我想要类似的东西

  • 我得到了foo.cpp程序,对其进行了编译(我相信可以在root用户下完成),然后留下二进制文件/home/sandbox/a.out,然后由sandbox用户执行该程序;
  • 或者我得到了不需要编译且由sandbox用户执行的脚本(例如,在perl或python中)(前提是必须由root预先安装必要的环境)。

但是我不希望这些二进制文件或脚本能够:

  • 写入/tmp/var/tmp(以及其他所有可写文件夹是什么?)
  • 例如阅读/etc(尽管我不确定最终将它们倾倒到stdout可能有害)

那么,是否有一些魔术可以禁止访问任何文件/目录(除了可能很少的给定文件/目录(例如,可能包含标准库))?

0 个答案:

没有答案