Контейнер упрощает запуск MySQL, но данные нужно хранить вне его временного слоя. Для рабочего окружения зафиксируйте версию образа, настройте постоянный том и отдельно организуйте резервное копирование.
Минимальный стенд
Для официального образа mysql можно использовать такой пример:
docker volume create mysql-data
docker run -d --name mysql-lab --restart unless-stopped \
--mount source=mysql-data,target=/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD='REPLACE_WITH_A_STRONG_PASSWORD' \
mysql:8.4
docker logs mysql-lab
docker exec -it mysql-lab mysql -uroot -p
Замените пример пароля. Для рабочего окружения используйте предусмотренный образу способ передачи секрета, чтобы не оставлять его в истории команд. Порт наружу в примере не публикуется.
Что учитывать
Статья Hevo использует mysql/mysql-server, поведение которого нельзя смешивать с официальным образом mysql. Автоматическая генерация пароля зависит от выбранного образа и параметров. Документация официального образа MySQL.
Переменные первоначальной настройки действуют при инициализации пустого каталога данных. Для существующей базы изменение переменной окружения не заменяет изменение пароля внутри MySQL.
Проверка
Проверьте вход, создайте тестовые данные и убедитесь, что они сохраняются после перезапуска. Перед обновлением версии сделайте резервную копию и проверьте совместимость. Том обеспечивает постоянное хранение, но не защищает от логического удаления данных.
Иллюстрации из исходного материала









Источник материала: Docker MySQL Container: 3 Easy Steps for Setup and Configuration - Learn | Hevo.