我是Docker的新手,我已经看到一些用于运行容器化软件的文档需要指定其中任何一个来匹配特定的用户和组。所以我想知道两者有什么区别?下面的例子来说明。
Jellyfin使用UID/GID对:
docker run -d \
--name="Jellyfin" \
--restart=always \
--network=host \
-p 8096:8096 \
-e UID=1000 \
-e GID=1000 \
-v /media:/media \
-v $HOME/docker/jellyfin/config:/config \
jellyfin/jellyfin:latest
而口径-web使用PUID/PGID集:
docker create --name=calibre-web --restart=always \
-v ~/books:/books \
-v /etc/localtime:/etc/localtime:ro \
-e PGID=1000 -e PUID=1000 \
-p 8081:8083 \
technosoft2000/calibre-web
在寻找信息的时候,我甚至看到一些随机的github回收在某个时候从前者变成了后者;这两个选项之间有什么区别呢?
发布于 2019-10-01 17:36:24
我理解您的问题是:“为什么这些变量名为PUID和PGID,而不是UID和GID?”事实上,它们完全可以被命名为任何名字。Docker和Linux都不关心。是应用程序决定了如何处理它们。
进一步的搜索发现,这只是一种约定,一些应用程序会做自己的事情。例如,一次申请分别使用环境变量MAYAN_USER_UID和MAYAN_USER_GID。
发布于 2019-10-01 06:50:58
参数-e
设置环境变量。在谷歌上搜索environment variable PUID
产量,以及这一结果:
理解linuxserver.io上的PUID和PGID,他提供了一个码头形象的口径-网络。
引用那一页的话:
使用PUID和PGID,我们的容器可以将容器的内部用户映射到主机上的用户。我们所有的容器都使用这种用户映射方法,应该相应地加以应用。
该页的另一份说明:
我们知道最近版本的Docker引擎引入了--用户标志。我们的映像与此不兼容,因此我们建议继续使用PUID和PGID。
所以,它需要运行容器。如何实现这一点取决于这些映像的维护人员。
https://serverfault.com/questions/986305
复制相似问题