我正在寻找一个"清洁"共享卷并共享权限的解决方案。我的意思是,如果可能,我希望我的容器中的用户与启动它的本地用户相同。
目前,我正在使用:
docker run --rm -v ~/Projects/:/projects/ mycontainer
它可以工作,但问题是,当我的容器在这个卷中写入一些内容时,它的root用户是专有的而不是我的本地用户。
处理此问题的最佳方法是什么?如果可能,我不想在Dockerfile中创建用户信息,因为我想与同事共享此容器,我想避免本地用户和容器用户之间的任何权限问题。 / p>
谢谢
答案 0 :(得分:1)
您可以在docker run
命令中指定用户:
--user, -u Username or UID (format: <name|uid>[:<group|gid>])
如果您使用主机用户的数字UID和GID,则创建的文件将属于它。
答案 1 :(得分:1)
感谢你的帮助亨利。
我的完整解决方案是:
docker run --rm -e USER_ID=$(echo "$UID") -v ~/Projects/:/projects/ mycontainer
我将此脚本作为入口点值:
#!/bin/bash
adduser -D -u $USER_ID alpine &>/dev/null
cd /projects/
su alpine -c 'mycommand ...."
使用此功能,我的容器可以使用与本地用户相同的权限访问和添加/修改Projects文件夹中的内容。