MacOS High Sierra版本10.13.5
Docker for Mac Communit Edition,版本18.06.1-ce-mac73(26764)
我正在学习Docker In Action一书中的示例,以演示共享的用户ID空间。这是设置:
$ echo "ssddkkjj" > garbage
$ chmod 600 garbage
$ sudo chown root:wheel garbage
据说,被监禁的(容器)根应具有与主机root
相同的访问权限。但就我而言,事实并非如此,因为容器root
无法访问主机root
拥有的文件:
$ docker container run --rm -v "$(pwd)"/garbage:/test/garbage -u root ubuntu:latest cat /test/garbage
cat: /test/garbage: Permission denied
更多实验表明,被监禁的根与主机根不同,因为被监禁的根不被视为owner
或group
,而是被视为other
:
$ sudo chmod 600 garbage
$ docker container run --rm -v "$(pwd)"/garbage:/test/garbage --user=root ubuntu:latest cat /test/garbage
cat: /test/garbage: Permission denied
$ sudo chmod 060 garbage
$ docker container run --rm -v "$(pwd)"/garbage:/test/garbage --user=root ubuntu:latest cat /test/garbage
cat: /test/garbage: Permission denied
$ sudo chmod 006 garbage
$ docker container run --rm -v "$(pwd)"/garbage:/test/garbage --user=root ubuntu:latest cat /test/garbage
ssddkkjj
是由于docker机器在MacOS上运行吗?还是设计使然?有任何解释这种行为的文档吗?