Linux Labs

Контейнеры: Docker и compose / Ступень 2 из 11

Порты, переменные и перезапуск

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 3 из 8 · на машине · 6 мин

Переменные окружения

Настройки приложению в контейнере чаще всего передают переменными окружения.

Главный процесс получает переменные окружения от Docker. Часть задана в образе — например, PATH. Свои добавляет ключ -e ИМЯ=значение в docker run, по одному -e на переменную. Так настраивают многие готовые образы: режим работы, адрес базы, имя пользователя.

Что получил процесс, видно двумя способами. docker exec <имя> env печатает окружение внутри работающего контейнера. docker inspect <имя> печатает полное описание контейнера в формате JSON, а ключ --format выбирает из него поле — здесь список переменных:

bash
sudo docker inspect --format '{{json .Config.Env}}' worker

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

На сервере работает контейнер worker из образа worker:1 — учебное приложение, которое раз в 5 секунд проверяет очередь задач. Режим работы оно берёт из переменной APP_MODE и пишет его в журнал.

Упражнение · сделать

Переведи worker в режим prod

Посмотри журнал и окружение контейнера worker, потом переведи приложение в режим prod: в журнале worker должна появиться строка с mode=prod. Образ — worker:1, имя контейнера — прежнее.

Войти и начать Машина доступна после входа

Цели · 0 из 2

  • Передать приложению режим prod ещё не выполнена
  • Оставить worker работающим из образа worker:1 ещё не выполнена

Цели шага

0 из 2
  • Передать приложению режим prod — ещё не выполнена
  • Оставить worker работающим из образа worker:1 — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 2
  • Передать приложению режим prod — ещё не выполнена
  • Оставить worker работающим из образа worker:1 — ещё не выполнена
Загрузка…