Skip to main content

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

Docker

Использование переменных окружения в Docker

В Docker можно использовать переменные окружения для настройки параметров контейнера. Это позволяет гибко настраивать приложения и управлять их параметрами без переписывания кода.

Использование переменных окружения в Python

Для использования переменных окружения в Python можно использовать модуль os. Например, чтобы получить значение переменной окружения FOOT_SIZE, выполните следующий код:

import os

foot_size = os.environ.get('FOOT_SIZE', 'small')

В этом примере переменная foot_size будет содержать значение переменной окружения FOOT_SIZE. Если переменная окружения не установлена, переменная foot_size будет содержать значение 'small'.

Пример использования переменных окружения в Docker

Для использования переменных окружения в Docker, можно использовать опцию -e команды docker run. Например, чтобы запустить контейнер с именем foot-app из образа и установить переменную окружения FOOT_SIZE в значение 'big', контейнер должен работать на порту 8080, а порт 25675 должен быть проброшен на хост, выполните следующую команду:

docker run --name foot-app -e FOOT_SIZE=big -p 25675:8080 kligann/foot-app

В этой команде --name задает имя контейнера, -e устанавливает значение переменной окружения, -p пробрасывает порт на хост, а kligann/foot-app указывает на имя образа.

Пример развертывания базы данных MySQL в Docker

Для развертывания базы данных MySQL в Docker можно использовать официальный образ из репозитория Docker Hub. Например, чтобы развернуть экземпляр базы MySQL с паролем mysqldb123 и проверить, сколько баз данных создано в контейнере, выполните следующие команды:

docker run --name mysql-db -e MYSQL_ROOT_PASSWORD=mysqldb123 -d mysql:latest
docker exec -i mysql-db mysql -uroot -p mysqldb123 <<< "show databases;"

В первой команде --name задает имя контейнера, -e устанавливает переменную окружения MYSQL_ROOT_PASSWORD для установки пароля рута, -d запускает контейнер в фоновом режиме, а mysql:latest указывает на имя образа.

Во второй команде docker exec выполняет команду в контейнере, -i означает интерактивный режим, mysql-db указывает на имя контейнера, mysql -uroot -p mysqldb123 указывает на выполнение команды MySQL от имени рута с указанием пароля, а <<< "show databases;" показывает вывод строк.