Команда Docker exec
docker execКоманда используется для выполнения новой команды внутри работающего контейнера. Это полезно для отладки, запуска дополнительных процессов или выполнения управляющих операций внутри контейнера.
Синтаксис
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
Общие параметры
-d, --detachЗапустить команду в фоновом режиме.--detach-keys: Переопределить последовательность клавиш для отсоединения от контейнера.-e, --env: Задайте переменные окружения.--env-file: Читать переменные окружения из файла.-i, --interactive: Оставлять стандартный ввод открытым.--privileged: Предоставить дополнительные привилегии этой команде.--user, -uЗапустить команду от имени указанного пользователя.--workdir, -wУказать рабочий каталог для команды.-t, --tty: Выделить псевдо-TTY.
Пример
Запустить команду внутри контейнера:
docker exec my_container ls /app
Выполнить команду ls /app внутри работающего контейнера my_container, чтобы вывести содержимое каталога /app.
Запустить команду в интерактивном режиме:
docker exec -it my_container /bin/bash
Запустить интерактивную оболочку Bash внутри работающего контейнера my_container. -i оставляет стандартный ввод открытым, а -t выделяет псевдо-TTY.
Запустить команду в фоновом режиме:
docker exec -d my_container touch /app/newfile.txt
Запустите команду touch /app/newfile.txt в фоновом режиме внутри работающего контейнера my_container, чтобы создать новый файл.
Задайте переменные окружения:
docker exec -e MY_ENV_VAR=my_value my_container env
Выполните команду env внутри работающего контейнера my_container, установив переменную окружения MY_ENV_VAR в значение my_value.
Выполните команду от имени указанного пользователя:
docker exec -u user123 my_container whoami
Выполните команду whoami от имени пользователя user123 внутри работающего контейнера my_container.
Укажите рабочий каталог:
docker exec -w /app my_container pwd
Выполните команду pwd с рабочим каталогом /app внутри работающего контейнера my_container.
Сценарий использования
- Отладка контейнераВойдите в контейнер для отладки и устранения неполадок.
- Задачи управления: Выполняйте дополнительные административные задачи или операции обслуживания внутри контейнера.
- Мониторинг и проверка: Выполняйте команды мониторинга и проверки внутри контейнера, чтобы получать состояние работы и логи.
Итог
docker execЭта команда — очень мощный инструмент в Docker, который позволяет пользователям выполнять дополнительные команды внутри работающих контейнеров. Это очень полезно для отладки, управления и обслуживания контейнеров, помогая пользователям более гибко контролировать и управлять средой внутри контейнеров.
Другие расширения