
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
MySQL是全球最受欢迎的开源数据库,以其可靠的性能、稳定性和易用性成为Web应用的首选数据库,适用于从个人项目、网站到大型Web平台(如***、***、***等)的全范围应用场景。
维护者:Docker社区和MySQL团队
获取帮助:Docker社区Slack、Server Fault、Unix & Linux或Stack Overflow
问题反馈:https://github.com/docker-library/mysql/issues
支持架构:amd64、arm64v8
镜像更新:official-images仓库的library/mysql标签
启动MySQL实例非常简单:
bashdocker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
some-mysql:容器名称my-secret-pw:root用户密码tag:指定MySQL版本(如8.0、5.7等,见支持标签列表)启动另一个容器并运行MySQL客户端连接到数据库:
bashdocker run -it --network some-network --rm mysql mysql -hsome-mysql -uexample-user -p
some-network:Docker网络名称some-mysql:目标MySQL容器名称也可连接非Docker或远程MySQL实例:
bashdocker run -it --rm mysql mysql -hsome.mysql.host -usome-mysql-user -p
示例stack.yml配置:
yaml# 使用root/example作为用户/密码凭证 version: '3.1' services: db: image: mysql # 注意:不推荐使用"mysql_native_password":https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password # (仅为示例,不建议用于生产环境) command: --default-authentication-plugin=mysql_native_password restart: always environment: MYSQL_ROOT_PASSWORD: example adminer: image: adminer restart: always ports: - 8080:8080
部署命令:
bashdocker-compose -f stack.yml up
访问Adminer管理界面:http://localhost:8080
进入容器bash shell:
bashdocker exec -it some-mysql bash
查看容器日志:
bashdocker logs some-mysql
MySQL默认配置位于/etc/mysql/my.cnf,可通过挂载自定义配置目录覆盖:
bashdocker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
/my/custom:主机自定义配置目录(包含.cnf文件)可通过命令行参数直接配置mysqld,例如设置默认字符集:
bashdocker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
查看所有可用参数:
bashdocker run -it --rm mysql:tag --verbose --help
容器启动时可通过环境变量配置MySQL,已存在数据目录时变量无效。
| 变量名 | 说明 |
|---|---|
MYSQL_ROOT_PASSWORD | 必选,设置root用户密码 |
MYSQL_DATABASE | 可选,指定启动时创建的数据库名称 |
MYSQL_USER | 可选,创建新用户(需配合MYSQL_PASSWORD) |
MYSQL_PASSWORD | 可选,新用户密码(需配合MYSQL_USER) |
MYSQL_ALLOW_EMPTY_PASSWORD | 可选,设为非空值(如yes)允许root空密码(不推荐) |
MYSQL_RANDOM_ROOT_PASSWORD | 可选,设为非空值(如yes)生成随机root密码(输出到日志) |
MYSQL_ONETIME_PASSWORD | 可选,设为非空值使root用户首次登录需修改密码(MySQL 5.6+支持) |
MYSQL_INITDB_SKIP_TZINFO | 可选,设为非空值跳过时区数据加载 |
通过_FILE后缀从文件加载敏感信息(支持MYSQL_ROOT_PASSWORD、MYSQL_ROOT_HOST、MYSQL_DATABASE、MYSQL_USER、MYSQL_PASSWORD):
bashdocker run --name some-mysql -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-root -d mysql:tag
首次启动容器时,会创建指定数据库并执行/docker-entrypoint-initdb.d目录下的.sh、.sql、.sql.gz文件(按字母顺序执行)。可挂载SQL文件到该目录初始化数据:
bashdocker run --name some-mysql -v /my/init-scripts:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
推荐两种数据持久化方式:
/var/lib/mysql:
bashdocker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
/my/own/datadir:主机数据目录首次启动时数据库初始化期间无法接受连接,自动化部署需实现连接重试逻辑(参考WordPress或Bonita镜像的实现)。
若数据目录已存在数据库(含mysql子目录),启动时需省略MYSQL_ROOT_PASSWORD,系统会保留现有数据库。
指定UID/GID运行(需确保目录权限正确):
bashmkdir data docker run -v "$PWD/data":/var/lib/mysql --user 1000:1000 --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
备份:
bashdocker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/all-databases.sql
恢复:
bashdocker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/all-databases.sql
查看镜像中软件的许可证信息。镜像可能包含其他软件(如Bash等),其许可证需另行确认。用户需确保使用该镜像符合所有包含软件的许可证要求。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 mybbsky/mysql8 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: