适用范围:这是面向测试或个人环境的历史记录。生产环境应固定 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 账号的远程访问。
|