Как посмотреть переменные окружения запущенного Docker-контейнера?

«Как посмотреть переменные окружения запущенного Docker-контейнера?» — вопрос из категории Docker, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Просмотр переменных окружения контейнера — стандартная операция при отладке проблем с конфигурацией приложения в контейнеризированной среде.

Способ 1: Через docker exec (рекомендуется для проверки текущего состояния) Выполняет команду env внутри запущенного контейнера, показывая все переменные, видимые в его основном процессе.

docker exec <container_id_or_name> env

Преимущество: Показывает актуальное состояние, включая переменные, которые могли быть установлены скриптами точки входа (entrypoint).

Способ 2: Через docker inspect (просмотр статической конфигурации) Показывает переменные, заданные при создании контейнера (через Dockerfile ENV или флаг -e).

# Чистый вывод только переменных
docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' <container_id_or_name>

# Полный JSON, где нужно найти секцию "Config.Env"
docker inspect <container_id_or_name>

Когда использовать: Когда нужно понять, какие переменные были переданы контейнеру извне (например, из docker run -e или Docker Compose), без учета внутренних модификаций.

Практический пример: Приложение в контейнере не подключается к базе данных. Первым делом смотрю переменные через docker exec ... env, чтобы убедиться, что DB_HOST, DB_PASSWORD загружены корректно и имеют ожидаемые значения, а не значения по умолчанию.