n1ro°
RU

Текст и данные · Инструкция

Как запустить compose exec от заданного пользователя

Это удобно для разовой проверки прав или административной операции без пересоздания самого контейнера.

Редакция N1RO · Проверено

Короткий ответ

`docker compose exec --user <uid-or-name> <service> <command>` запускает команду внутри работающего сервиса от выбранного пользователя.

Что делать

  1. Узнать текущий UID: Выполните `docker compose exec <service> id`.
  2. Запустить нужным user: Добавьте `--user <uid-or-name>` перед именем сервиса.
  3. Проверить владельца файлов: Если команда пишет в volume, сверяйте UID/GID созданных файлов на host и в контейнере.

Как понять, что получилось

  • Exec-команда выполнилась от указанного пользователя, а основной процесс сервиса продолжил работать со своей конфигурацией.

Что учесть

Запуск от root может создать в bind mount файлы с неудобным владельцем для host-пользователя.

Что учитывать

Запуск от root может создать в bind mount файлы с неудобным владельцем для host-пользователя.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. docker compose exec). Пример и формулировки — редакция N1RO на 2026-09-18.