/home/foo/mydir我有一个由 (uid=1040) 拥有的目录foo:foo,我将其绑定安装在 alpine docker 映像中,如下所示:
docker run -it --rm -v /home/foo/mydir:/tmp/mydir --user 1040 alpine
但是当我检查容器中的目录时,它属于root:root. 我疯了吗?我认为 docker 在安装到容器中时会传递文件所有权?无论如何,是否可以保留权限(即在容器中mydir拥有的权限)而不将其放入容器中?foo:foo
我有两台 Ubuntu Jammy 机器,此问题发生在一台机器上,但另一台机器上没有。我终于找到了原因和解决办法。
显然这个问题是由 Docker Desktop 引起的。在第一台机器上我只安装了 Docker 引擎。第二台机器安装了 Docker Desktop,它运行一个虚拟机,您的容器将在该虚拟机内运行。在这种情况下,您不能以相同的方式将主机目录挂载到容器中,因为您需要首先将其挂载到虚拟机中。
一种解决方案是完全删除 Docker(包括~/.docker),然后仅安装 Docker 引擎(https://docs.docker.com/engine/install/)。
或者,在第二台机器上,如果您也安装了 Docker CE,则可以切换回“默认”上下文:
docker context use default
Run Code Online (Sandbox Code Playgroud)
根据我的支持查询:
https://forums.docker.com/t/bind-mount-permissions-unexpected-mounting-as-root-root/129328?u=swpppp
| 归档时间: |
|
| 查看次数: |
1341 次 |
| 最近记录: |