【发布时间】:2019-12-05 13:27:48
【问题描述】:
所以,我已经阅读了很多关于这个问题的帖子,但我从未设法解决它。
我正在关注this tutorial 设置媒体服务器。
问题是,当我将卷挂载到主机上不不存在的路径时,目录和其中的所有文件都以 root 身份创建。
我已按照安装后说明进行操作:
sudo usermod -aG docker $USER
这是我的 docker-compose 示例:
medusa:
image: linuxserver/medusa
container_name: medusa
environment:
- PUID=1000
- PGID=1000
- TZ=${TZ}
volumes:
- /home/myuser-ubuntu/docker/medusa/config:/config
- /home/myuser-ubuntu/media:/data
ports:
- 8081:8081
restart: unless-stopped
在 Ubuntu Server 18.04 上运行,当我以安装 Ubuntu 时创建的默认用户 (myuser-ubuntu) 身份登录时,使用“id”命令看到此结果:
uid=1000(myuser-ubuntu) gid=1000(myuser-ubuntu) groups=1000(myuser-ubuntu),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lxd),1001(docker)
此用户属于以下组:
myuser-ubuntu : myuser-ubuntu adm cdrom sudo dip plugdev lxd docker
问题是...我确实设法在 Raspberry Pi 3B 上运行了完全相同的设置,运行 HypriotOS。但是该操作系统上的用户创建将用户添加到不同的组。在这种情况下,所有目录和文件都是在 myuser-pi 用户和 myuser-pi 组下创建的。 (这是我想要的)
以下是“myuser-pi”所在的组:
myuser-pi : myuser-pi video users docker
以及 HypriotOS 上“id”命令的输出
uid=1000(myuser-pi) gid=1000(myuser-pi) groups=1000(myuser-pi),44(video),100(users),999(docker)
所以,我怀疑 myuser-pi 不属于像“myuser-ubuntu”这样的“sudo”组这一事实与设置的差异有关。
现在,如果我在启动容器之前创建所有目录和子目录,在其中创建的文件不属于 root,而是属于“myuser-ubuntu”和组“码头工人”。
关于如何在 Ubuntu 上完成与在 HypriotOS 上相同的事情有什么想法吗?
谢谢!
【问题讨论】:
标签: linux docker permissions docker-compose