Уже лучше, для начала официальная дока -
https://docs.docker.com/storage/volumes/
в примере есть такая конструкция
-v /my/own/datadir:/var/lib/mysql
она означает - монтировать в контейнер локальную папку /my/own/datadir
В контейнере база будет сохраняться в каталог /var/lib/mysql , как обычно, а на это место вы при старте контейнера примонтировали свою папку. Если в будущем, вы грохнете контейнер, то папка с данными останется.
С создать базу все тоже просто.
Вам надо приготовить файл чтото-там.sql , в котором описать создание базы, создание пользователей.
чтото типа
CREATE DATABASE mydb;
CREATE USER 'readuser'@'%' IDENTIFIED BY 'passwordforreaduser';
GRANT SELECT ON mydb.* TO 'readuser'@'%';
CREATE USER 'writeuser'@'%' IDENTIFIED BY 'passwordforwriteuser';
GRANT INSERT, UPDATE, SELECT, DELETE ON mydb.* TO 'writeuser'@'%';
и подмонтируете этот файл -v path/to/you/file:/docker-entrypoint-initdb.d/init.sql
при старте база его найдет в этой папке и выполнит.