Skip to content

exec (Выполнение команд в контейнере)

Описание:
Команда docker exec позволяет выполнить произвольную команду внутри уже запущенного контейнера. Удобна для отладки, запуска миграций, проверки логов, доступа к bash и т.д.


Без флагов – обычный запуск команды

Структура команды:

docker exec [container] [команда]

Описание:
Выполняет команду внутри указанного контейнера. По умолчанию неинтерактивно, без подключения псевдотерминала.

Пример:

docker exec my_container ls /app


Флаг -i – интерактивный режим

Структура команды:

docker exec -i [container] [команда]

Описание:
Оставляет стандартный ввод (stdin) открытым, чтобы можно было передавать данные в контейнер.

Пример:

echo "SELECT 1;" | docker exec -i postgres_container psql -U postgres


Флаг -t – псевдотерминал (TTY)

Структура команды:

docker exec -t [container] [команда]

Описание:
Выделяет TTY — используется для красивого вывода в терминале.

Пример:

docker exec -t my_container top


Флаги -it – интерактив + TTY

Структура команды:

docker exec -it [container] [команда]

Описание:
Часто используемая связка для интерактивной работы, например, запуска bash.

Пример:

docker exec -it my_container bash


Флаг --user – запуск от имени пользователя

Структура команды:

docker exec --user [UID[:GID]] [container] [команда]

Описание:
Позволяет запустить команду от имени определённого пользователя. Полезно при доступе к файлам, проверке прав и др.

Пример:

docker exec --user 1000:1000 my_container whoami


Флаг --privileged – привилегированный режим

Структура команды:

docker exec --privileged [container] [команда]

Описание:
Даёт повышенные привилегии команде внутри контейнера. Используется для отладки или запуска системных утилит.

Пример:

docker exec --privileged my_container mount