MySQL 官方 Docker 镜像,提供开箱即用的关系型数据库服务,支持通过环境变量完成库和账号初始化,并结合数据卷实现持久化存储,适合本地开发、集成测试及小到中型生产环境的数据库部署。
收藏数: 1.6万
下载次数: 4881197588
类型:

library/mysqlMySQL 是使用最广泛的开源关系型数据库之一,适用于博客、企业官网、电商平台、SaaS 系统等各种场景。本镜像由官方团队维护,预装 MySQL Server,并对初始化流程做了容器化封装,可通过少量环境变量完成数据库创建与账号初始化,极大简化部署流程。
3306/var/lib/mysqlamd64 / arm64 等bashdocker run -d \ --name mysql \ -e MYSQL_ROOT_PASSWORD=your-root-password \ -p 3306:3306 \ mysql:latest
此命令会:
/var/lib/mysql);root 用户并设置密码为 your-root-password;初始化期间 MySQL 还在创建系统表、用户等,短时间内可能无法立即连接,稍等片刻或在应用中增加重试逻辑即可。
为了避免容器删除导致数据丢失,推荐将 /var/lib/mysql 挂载到宿主机目录或 Docker 卷:
bash# 使用命名卷(推荐) docker run -d \ --name mysql \ -e MYSQL_ROOT_PASSWORD=your-root-password \ -p 3306:3306 \ -v mysql-data:/var/lib/mysql \ mysql:latest # 或挂载宿主机目录 docker run -d \ --name mysql \ -e MYSQL_ROOT_PASSWORD=your-root-password \ -p 3306:3306 \ -v /opt/mysql/data:/var/lib/mysql \ mysql:latest
这些变量仅在数据目录为空、首次初始化时生效;目录中已存在数据库时会被忽略。
MYSQL_ROOT_PASSWORD(必选):root 用户密码(除非使用空密码或随机密码模式)。MYSQL_DATABASE:初始化时自动创建的数据库名称。MYSQL_USER / MYSQL_PASSWORD:创建一个业务账号,并授予上面 MYSQL_DATABASE 的全部权限。MYSQL_ALLOW_EMPTY_PASSWORD:允许 root 使用空密码(设为 yes,不推荐生产环境)。MYSQL_RANDOM_ROOT_PASSWORD:启动时为 root 生成随机密码(设为 yes,密码会写入容器日志)。示例:一次性创建库和业务账号:
bashdocker run -d \ --name mysql \ -e MYSQL_ROOT_PASSWORD=your-root-password \ -e MYSQL_DATABASE=app_db \ -e MYSQL_USER=app_user \ -e MYSQL_PASSWORD=app_password \ -v mysql-data:/var/lib/mysql \ mysql:latest
很多常见配置可以直接通过 mysqld 参数设置,而无需准备独立的配置文件,例如统一设置 utf8mb4 字符集:
bashdocker run -d \ --name mysql \ -e MYSQL_ROOT_PASSWORD=your-root-password \ -v mysql-data:/var/lib/mysql \ mysql:latest \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_unicode_ci
如果已准备好 my.cnf 或额外配置片段,可以通过挂载目录的方式加载:
bash# 假设 /opt/mysql/conf.d 中放置了自定义 .cnf 文件 docker run -d \ --name mysql \ -e MYSQL_ROOT_PASSWORD=your-root-password \ -v mysql-data:/var/lib/mysql \ -v /opt/mysql/conf.d:/etc/mysql/conf.d \ mysql:latest
多个配置文件会按 MySQL 约定顺序加载,后加载的值会覆盖默认值。
bash# 备份所有数据库到宿主机文件 Docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /backup/all.sql
bash# 从备份文件恢复 docker exec -i mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /backup/all.sql
以下是 mysql 相关的常用 Docker 镜像,适用于 关系型数据库、事务处理、数据存储 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务