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;" показывает вывод строк.