Diferença entre PGID / PUID e GID / UID ao configurar contêineres docker

Sou novo no Docker e vi que alguns scripts para executar software em contêiner exigem especificar qualquer um deles para corresponder a determinado usuário e grupo. Então eu estava me perguntando Qual é a diferença entre os dois? Exemplos abaixo para ilustrar.

Jellyfin usa par 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

Enquanto o Calibre-web usa o conjunto 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

Enquanto procurava informações, eu até vi alguns repositórios aleatórios do github isso mudou do primeiro para o posterior em algum momento; Qual é a diferença entre as duas opções?

Eu entendi sua pergunta como: "por que essas variáveis são chamadas PUID e PGID em vez de UID e GID"? Na verdade, eles poderiam ser nomeados qualquer coisa. Nem Docker nem Linux se importam. É o aplicativo que decide o que fazer com eles.

Uma pesquisa mais aprofundada revelou que este é apenas um convencao, e alguns aplicativos fazem suas próprias coisas. Por exemplo, aplicacao usa as variáveis de ambiente MAYAN_USER_UID e MAYAN_USER_GID respectivamente.

Parametro -e define variáveis de ambiente. pesquisando para environment variable PUID rendimentos entre outros este resultado:

Entendendo PUID e PGID em linuxserver.io, que fornecem uma imagem docker para calibre-web.

Citação dessa página:

O uso do PUID e do PGID permite que nossos contêineres mapeiem o usuário interno do contêiner para um usuário na máquina host. Todos os nossos contêineres usam esse método de mapeamento do Usuário e devem ser aplicados de acordo.

Outra nota dessa página:

Estamos cientes de que versões recentes do mecanismo Docker introduziram o sinalizador --user. Nossas imagens ainda não são compatíveis com isso, por isso recomendamos o uso contínuo de PUID e PGID.

Então, é necessário executar o contêiner. Como isso é implementado depende dos mantenedores dessas imagens.

Eu entendi sua pergunta como: “por que essas variáveis são chamadas PUID e PGID em vez de UID e GID”? Na verdade, eles poderiam ser nomeados qualquer coisa. Nem Docker nem Linux se importam. É o aplicativo que decide o que fazer com eles.

Isso parece uma pergunta para os desenvolvedores desses aplicativos.

@ MichaelHampton não acho; acho que deve haver alguma especificação ou documentação sobre isso em algum lugar, se não for uma coisa do Docker, talvez seja uma coisa do Linux, mas não consegui encontrá-la. Claro que eu poderia perguntar aos desenvolvedores, mas como essa pergunta não estaria realmente relacionada ao desenvolvimento de seu software, prefiro não incomodá-los com minha ignorância tangencial, se possível. Mas talvez esta seja uma pergunta mais adequada para superusuário?

@ MichaelHampton de fato, você estava correto desde o início. Parece que minha confusão veio de mim sem saber que variáveis de ambiente poderiam ser chamadas de qualquer coisa. Sinta-se à vontade para adicionar sua resposta como resposta para que eu possa marcá-la como solução. Além disso, obrigado por ajudar!