Введение в первый запуск MySQL в Docker
Пустого сервера мало, когда базе нужны таблицы, кодировка и свой часовой пояс. Образ поднимает процесс, но схему данных и поведение строк задают отдельно - иначе каждый раз пришлось бы вводить одно и то же вручную.
На пустом томе скрипт старта образа выполняет файлы из подключённой папки: там лежит SQL или оболочка, которые создают таблицы и другие объекты один раз, пока хранилище ещё не занято файлами базы.
Файл настроек добавляет параметры сервера без правки длинной строки запуска: его монтируют в каталог конфигурации внутри копии, и демон читает значения при каждом старте.
Отдельный параметр можно передать прямо в команде запуска сервиса, если нужна одна настройка и не хочется заводить отдельный файл на диске.
Кодировка задаёт, в каких байтах новые таблицы хранят текст, а согласованность сортировки строк идёт рядом с выбором набора символов.
Часовой пояс сервера удобно задавать переменной окружения контейнера: тогда функции даты и время в запросах совпадают с ожидаемым регионом, не трогая файлы на хосте.