【发布时间】:2018-03-17 17:11:15
【问题描述】:
Alice 和 Bob 都是同一主机上 docker 组的成员。 Alice 想在 docker 容器中运行一些长时间运行的计算,然后将结果复制到她的主文件夹。 Bob 很爱管闲事,Alice 不希望他能够读取她的计算正在使用的数据。
系统管理员可以做些什么来让 Bob 远离 Alice 的 docker 容器?
根据named volumes 和docker cp command,我认为Alice 应该如何从她的容器中获取数据,如this question 和this one 中所述。
$ pwd
/home/alice
$ date > input1.txt
$ docker volume create sandbox1
sandbox1
$ docker run --name run1 -v sandbox1:/data alpine echo OK
OK
$ docker cp input1.txt run1:/data/input1.txt
$ docker run --rm -v sandbox1:/data alpine sh -c "cp /data/input1.txt /data/output1.txt && date >> /data/output1.txt"
$ docker cp run1:/data/output1.txt output1.txt
$ cat output1.txt
Thu Oct 5 16:35:30 PDT 2017
Thu Oct 5 23:36:32 UTC 2017
$ docker container rm run1
run1
$ docker volume rm sandbox1
sandbox1
$
我创建了一个输入文件input1.txt 和一个命名卷sandbox1。然后我启动一个名为run1 的容器,这样我就可以将文件复制到指定的卷中。该容器仅打印一条“OK”消息并退出。我复制输入文件,然后运行主计算。在此示例中,它将输入复制到输出并为其添加第二个时间戳。
计算完成后,我复制输出文件,然后删除容器和命名卷。
有什么方法可以阻止 Bob 加载他自己的容器,该容器安装了命名卷并向他显示 Alice 的数据?我已将 Docker 设置为使用 a user namespace,因此 Alice 和 Bob 没有主机的 root 访问权限,但我看不到如何让 Alice 和 Bob 使用不同的用户命名空间。
【问题讨论】:
标签: docker permissions