Docker 卷和主机权限

2024-04-24

当我运行 docker 镜像时,例如

docker run -v /home/n1/workspace:/root/workspace -it rust:latest bash

我在容器中创建一个目录,例如

mkdir /root/workspace/test

它由我的主机上的 root 拥有。这导致我每次关闭容器后都必须更改权限才能操作该目录。

有没有办法告诉 Docker 在某个用户下从我的机器(主机)角度处理目录和文件?


您需要在容器内以与在主机上相同的 uid 运行应用程序,以使文件所有权匹配。我自己的解决方案是以 root 身份启动容器,调整容器内用户的 uid 以匹配卷安装,然后 su 到用户来运行应用程序。可以在此存储库中找到此脚本:https://github.com/sudo-bmitch/docker-base https://github.com/sudo-bmitch/docker-base

在该存储库中,fix-perms 脚本处理容器内 uid/gid 的更改,并且入口点脚本有一个exec gosu $username "$@"以所选用户身份运行应用程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 卷和主机权限 的相关文章

随机推荐