
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
bash# 拉取代码 git clone https://github.com/idoall/docker.git cd mysql # 开发修改 # 构建镜像 docker build -t idoall/mysql:tag ./tag # 运行容器 docker run -d \ --name mysql \ --hostname mysql \ -p 6033:3306 \ -v datadir:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ idoall/mysql:tag
启动MySQL实例非常简单:
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
其中 some-mysql 是容器名称,my-secret-pw 是root用户密码,tag 是指定的MySQL版本标签(见上方列表)。
该镜像暴露标准MySQL端口(3306),可通过容器链接让其他应用容器访问MySQL实例:
$ docker run --name some-app --link some-mysql:mysql -d application-that-uses-mysql
以下命令启动新容器并运行MySQL客户端,连接到原有MySQL容器:
$ docker run -it --link some-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
其中 some-mysql 是原有MySQL容器名称。
也可用于连接非Docker或远程MySQL实例:
$ docker run -it --rm mysql mysql -hsome.mysql.host -usome-mysql-user -p
更多MySQL命令行客户端信息见MySQL文档。
通过docker exec进入容器Shell:
$ docker exec -it some-mysql bash
MySQL日志可通过Docker容器日志查看:
$ docker logs some-mysql
MySQL启动配置位于/etc/mysql/my.cnf,并会包含/etc/mysql/conf.d目录下所有.cnf文件。若需自定义配置,可将主机目录挂载到容器的/etc/mysql/conf.d:
$ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
其中/my/custom是主机上的自定义配置目录。
可通过mysqld参数调整配置,例如设置默认编码为UTF-8:
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
查看所有可用参数:
$ docker run -it --rm mysql:tag --verbose --help
启动容器时可通过环境变量调整配置(仅首次初始化数据库时生效):
MYSQL_ROOT_PASSWORD:必填,设置root用户密码。MYSQL_DATABASE:可选,初始化时创建的数据库名称。MYSQL_USER/MYSQL_PASSWORD:可选,创建新用户及密码,拥有MYSQL_DATABASE的超级权限。MYSQL_ALLOW_EMPTY_PASSWORD:可选,允许root用户空密码(不推荐)。MYSQL_RANDOM_ROOT_PASSWORD:可选,生成随机root密码并输出到日志。MYSQL_ONETIME_PASSWORD:可选,设置root用户首次登录需修改密码(仅MySQL5.6+支持)。首次启动容器时,会创建指定数据库并执行/docker-entrypoint-initdb.d目录下的.sh/.sql/.sql.gz文件(按字母顺序)。可挂载SQL文件到该目录初始化数据。
推荐将数据目录挂载到主机:
/my/own/datadir)。$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
首次启动时需等待数据库初始化完成,才可接受连接。
若数据目录已存在数据库,需省略MYSQL_ROOT_PASSWORD变量,原有数据库不会被修改。
通过docker exec执行mysqldump:
$ docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql
官方支持Docker 1.12.5,旧版本(低至1.6)尽力支持。
通过https://github.com/docker-library/mysql/issues%E5%8F%8D%E9%A6%88%E9%97%AE%E9%A2%98%EF%BC%8CCVE%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98%E5%85%88%E6%9F%A5%E7%9C%8Bhttps://github.com/docker-library/official-images/issues?q=label%3Acve-tracker%E3%80%82
欢迎提交PR,建议先通过GitHub issue讨论计划。
镜像文档存储于https://github.com/docker-library/docs/tree/master/mysql%E3%80%82
以下是 idoall/mysql 相关的常用 Docker 镜像,适用于 关系型数据库、事务处理、数据存储 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务