Как передать переменные среды в контейнер Docker

How Pass Environment Variables Docker Container



Docker - это программа с открытым исходным кодом, которая выполняет серверные приложения с использованием контейнеров, а не виртуальных машин. Docker - это конфигурация для разработки и хостинга, использующая меньше ресурсов, поэтому неудивительно, что она захватывает мир разработки. Переменные среды Docker важны для этой процедуры, поскольку они хранят данные, уникальные для каждой учетной записи пользователя, имеющей доступ к программному обеспечению.

Используя любую современную платформу JavaScript для создания контейнера для одного приложения, вы можете обнаружить, что параметры конфигурации различаются в зависимости от того, где будет выполняться контейнер. Например, базовый URL-адрес вашего API может различаться в зависимости от того, тестируете ли вы приложение или публикуете его. Переменные среды обычно используются разработчиками для решения этой проблемы, потому что код работает на бэкэнде, и там обычно используются переменные среды.







Во время создания образа нам может потребоваться передать информацию о среде в рабочий контейнер. Для этого мы используем команды ENV и ARG. Команда ARG создает переменную, которая может быть предоставлена ​​в процессе сборки. После того, как он определен в Dockerfile, вы можете использовать параметр —build-arg, чтобы передать его построителю изображений. В Dockerfile у нас может быть множество инструкций ARG. В Dockerfile команда ARG - единственная, которая может предшествовать инструкции FROM.



Однако инструкция ENV устанавливает переменную среды, которая, в свою очередь, определяет среду для следующих инструкций построения. Инструкция ENV доступна во время процесса построения, а также при запуске контейнера с флагом —env. Однако мы не можем передать инструкцию ENV при построении изображения. У директивы ARG есть недостаток, заключающийся в том, что она не может сохраняться после создания образа. Чтобы передать данные среды во время создания образа, мы просто будем использовать как ENV, так и ARG. В этом руководстве мы научим вас передавать переменную среды в контейнер докера.



Предварительные условия

Чтобы передать переменные среды в контейнер докеров, у вас должна быть установлена ​​система Ubuntu 20.04 Linux. Кроме того, убедитесь, что в вашей системе установлена ​​последняя версия Docker. В случае, если его нет в системе, вы можете выполнить его установку с помощью указанной ниже команды.





$ sudo apt установить docker.io

Во всем этом руководстве мы использовали ключевое слово Sudo, что означает, что у вас должны быть права sudo для запуска этой статьи.



Метод передачи переменных окружения

Чтобы передать переменные среды в контейнер докера, вы должны открыть терминал командной строки, используя комбинацию клавиш Ctrl + Alt + T или выполнив поиск в меню приложения с помощью его панели поиска. Теперь выполните следующие шаги:

Шаг 1. Вытяните изображение
В этом руководстве мы будем использовать Alpine, крошечный (5 МБ) образ Linux. Для начала загрузите изображение локально, используя следующую команду:

$ sudo docker pull alpine: 3

Вывод показывает успешное извлечение изображения.

Шаг 2. Передача переменных среды
Используя флаг –env, мы можем вводить переменные среды в виде пар ключ-значение прямо в командную строку при запуске нашего контейнера Docker. В качестве иллюстрации воспользуемся следующей добавленной командой:

$ sudo docker run --env VARIABLE1 = foobar alpine: 3

Для этой команды не будет конкретного вывода.

Шаг 3. Отражение переменных среды
Чтобы отразить переменные среды, используйте следующую добавленную команду вместе с ключевым словом export.

$ export ПЕРЕМЕННАЯ2 = foobar2

Для этой команды не будет конкретного вывода.

Шаг 4. Укажите переменные среды
Теперь, не указывая значение переменной среды, давайте определим переменную среды, используя следующую команду в терминале:

$ sudo docker run --env VARIABLE2 alpine: 3 env

В выходных данных вы можете увидеть, что переменная среды успешно передана в контейнер докера.

Заключение

В этой статье мы обсудили концепцию и важность переменных среды в Docker. Кроме того, мы предоставили вам пошаговое руководство по передаче переменной среды в контейнер докера. Надеюсь, у вас не возникнет проблем при передаче переменной окружения в контейнер докера.