获取由本地文件系统上的泊坞窗容器生成的内容时,拒绝权限

我使用下面的命令来运行一个容器:

docker run -it -v /home/:/usr/ ubuntu64 /bin/bash 

然后我在容器中运行一个程序,程序在文件夹中生成一些文件:/ usr /,它也出现在/ home /但是我不能访问生成的文件,出现错误:容器外部的权限被拒绝。

我觉得这可能是因为容器中的root生成的文件,但在容器外,用户没有root权限,但是如何解决呢?

我想要做的是访问容器外的程序(安装在容器中)生成的文件。

您需要使用-u标志

 docker run -it -v $PWD:/data -w /data alpine touch nouser.txt docker run -u `id -u` -it -v $PWD:/data -w /data alpine touch onlyuser.txt docker run -u `id -u`:`id -g` -it -v $PWD:/data -w /data alpine touch usergroup.txt 

现在,如果你在主机系统上执行ls -alh

 $ ls -alh total 8.0K drwxrwxr-x 2 vagrant vagrant 4.0K Sep 9 05:22 . drwxrwxr-x 30 vagrant vagrant 4.0K Sep 9 05:19 .. -rw-r--r-- 1 root root 0 Sep 9 05:21 nouser.txt -rw-r--r-- 1 vagrant root 0 Sep 9 05:21 onlyuser.txt -rw-r--r-- 1 vagrant vagrant 0 Sep 9 05:22 usergroup.txt