Docker权限托pipe容器中的用户卷
我正在寻找一个“干净”的解决scheme来共享一个卷和共享权限。 我的意思是,如果可能的话,我希望在我的容器中拥有与启动它的本地用户相同的用户。
目前,我正在使用:
docker run --rm -v ~/Projects/:/projects/ mycontainer
它的工作原理,但问题是,当我的容器在本卷中写入一些内容时,它是根本谁是专有的,而不是我的本地用户。
处理这个问题的最好方法是什么? 如果可能的话,我不想在Dockerfile中创build用户信息,因为我想与同事共享这个容器,我想避免本地用户和容器用户之间的任何权限问题。
谢谢
您可以在docker run
命令中指定用户:
--user, -u Username or UID (format: <name|uid>[:<group|gid>])
如果使用主机用户的数字UID和GID,则创build的文件将属于该用户。
感谢您的帮助亨利。
我的完整解决scheme是:
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 ...."
有了这个我的容器可以访问和添加/修改与我的本地用户相同的权限的项目文件夹中的内容。