Разница между PGID/PUID и GID/UID при настройке контейнеров docker

Я новичок в 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

В то время как Calibre-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 в какой-то момент это изменилось с первого на более позднее; в чем разница между обоими вариантами?

Я понял ваш вопрос следующим образом: "Почему эти переменные называются PUID и PGID вместо UID и GID"? На самом деле их вообще можно было назвать как угодно. Ни Docker, ни Linux это не волнует. Это приложение решает, что с ними делать.

Дальнейшие поиски показали, что это всего лишь соглашение, и некоторые приложения делают свое дело. Например, одно приложение использует переменные окружения MAY_USER_UID и MAY_USER_GID соответственно.

Параметр -e задает переменные среды. поиск в Google для environment variable PUID дает, среди прочего, такой результат:

Понимание PUID и PGID на linuxserver.io, которые предоставляют изображение docker для calibre-web.

Цитата с этой страницы:

Использование PUID и PGID позволяет нашим контейнерам сопоставлять внутреннего пользователя контейнера с пользователем на хост-компьютере. Все наши контейнеры используют этот метод сопоставления пользователей и должны применяться соответствующим образом.

Еще одна заметка с этой страницы:

Нам известно, что в последних версиях движка Docker был введен флаг --user. Наши изображения еще не совместимы с этим, поэтому мы рекомендуем продолжать использовать PUID и PGID.

Итак, это необходимо для запуска контейнера. Как это будет реализовано, зависит от тех, кто поддерживает эти изображения.

Я понял ваш вопрос следующим образом: “Почему эти переменные называются PUID и PGID вместо UID и GID”? На самом деле их вообще можно было назвать как угодно. Ни Docker, ни Linux это не волнует. Это приложение решает, что с ними делать.

Похоже, это вопрос к разработчикам этих приложений.

@MichaelHampton Я так не думаю; Я думаю, что где-то должна быть какая-то спецификация или документация по этому поводу, если это не Docker, возможно, это Linux, но я не смог ее найти. Конечно, я мог бы спросить разработчиков, но поскольку этот вопрос на самом деле не был бы связан с разработкой их программного обеспечения, я бы предпочел не раздражать их своим касательным невежеством, если это возможно. Но, может быть, этот вопрос лучше всего подходит для суперпользователя?

@MichaelHampton Действительно, вы были правы с самого начала. Похоже, мое замешательство возникло из-за того, что я не знал, что переменные окружения можно называть как угодно. Пожалуйста, не стесняйтесь добавлять свой ответ в качестве ответа, чтобы я мог пометить его как решение. Кроме того, спасибо вам за помощь!