适用范围:这是面向测试或个人环境的历史记录。生产环境应固定 MySQL 镜像版本、使用独立的最小权限账号,并通过密钥管理或受限权限文件保存密码,切勿使用示例中的弱密码。

一 拉取mysql

可在 Docker Hub 查看可用镜像。请明确指定版本标签,避免 latest 在升级时引入不可预期的兼容性变化。

docker pull mysql:<version>

二 创建并启动mysql容器

docker run -itd \
--name mysql \
--restart=always \
-p 3306:3306 \
-v /opt/mysql/config/conf.d:/etc/mysql/conf.d \
-v /opt/mysql/data:/var/lib/mysql \
--env-file /opt/mysql/.env \
mysql:<version>
  • --name mysql:定义容器名称;
  • --restart=always:定义总是自动重启,容易意外停止时可进行自动重启;
  • -p 3306:3306:端口映射,将宿主机的3306映射到3306端口;
  • -v /opt/mysql/config/conf.d:/etc/mysql/conf.d:文件夹映射,将宿主机的/opt/mysql/config/conf.d映射到容器的/etc/mysql/conf.d目录;
  • -v /opt/mysql/data:/var/lib/mysql:文件夹映射,将宿主机的/opt/mysql/data映射到容器的/var/lib/mysql目录;
  • --env-file /opt/mysql/.env:从受限权限文件读取 MYSQL_ROOT_PASSWORD;请勿把真实密码写入命令历史或提交到 Git。

三 进入mysql容器

docker exec -it mysql bash

四 初始化账号与权限

mysql -u root -p
# 输入密码,密码不会显示,正常输入即可
-- 示例仅说明操作位置;请使用随机强密码,并按实际来源 IP 创建专用账号。
-- 不建议直接开放 root 账号的远程访问。