Переменные среды Docker¶
При запуске контейнера Docker с MyDB Сервер вы можете настроить конфигурацию экземпляра при помощи добавления переменных среды в команду docker run.
Эти переменные ни на что не повлияют, если вы запустите контейнер с каталогом данных, который уже содержит базу данных. Любая ранее существовавшая база данных остается нетронутой при запуске контейнера.
Переменные являются необязательными, но необходимо указать хотя бы одно из следующих значений:
- 
MYSQL_DATABASE— имя схемы базы данных, которая создается при запуске контейнера.
- 
MYSQL_USER— создать учетную запись пользователя при запуске контейнера
- 
MYSQL_PASSWORD— используется сMYSQL_USERдля создания пароля для этой учетной записи пользователя.
- 
MYSQL_ALLOW_EMPTY_PASSWORD— создает пользователя root с пустым паролем. Этот вариант небезопасен, и его следует использовать только для тестирования или проверки концепции, когда базу данных можно впоследствии удалить. Кто угодно может подключиться как root.
- 
MYSQL_ROOT_PASSWORD— этот пароль используется для учетной записи пользователяroot. Этот вариант не рекомендуется для производственной среды.
- 
MYSQL_RANDOM_ROOT_PASSWORD— установите эту переменную вместоMYSQL_ROOT_PASSWORD, если вы хотите, чтобы сервер MyDB сгенерировал для вас пароль. Сгенерированный пароль доступен в логах контейнера только при первом запуске. Используйтеdocker logs. После первого запуска восстановить пароль невозможно.
Для дополнительной защиты вашего экземпляра используйте переменную MYSQL_ONETIME_PASSWORD.
Эти переменные видны любому, кто может запустить docker inspect.
$ docker inspect mydb
Ожидаемый результат
...
 "Env": [
                "MYSQL_ROOT_PASSWORD=root",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "MYDB_VERSION=8.4.5-5.2",
                "OS_VER=el8",
                "FULL_MYDB_VERSION=8.4.5-5.2.el8"
               ]
...
Если это нежелательно, вместо этих переменных вам следует использовать Docker-секреты или Docker-тома.
MyDB Сервер для MySQL также позволяет добавлять суффикс _FILE к имени переменной. Этот суффикс позволяет добавить значение из файла по указанному пути, чтобы его нельзя было увидеть снаружи контейнера.