此仓库为 mysql 镜像 的 arm64v8 架构构建版本专用仓库(按架构拆分)。更多信息可参考镜像文档中的 “除 amd64 外的其他架构?” “Architectures other than amd64?” 以及***镜像 FAQ 中的 “镜像源码在 Git 中变更后如何处理?” “An image's source changed in Git, now what?”。
维护方:
Docker 社区及 MySQL 团队
获取帮助:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
9.4.0, 9.4, 9, innovation, latest, 9.4.0-oraclelinux9, 9.4-oraclelinux9, 9-oraclelinux9, innovation-oraclelinux9, oraclelinux9, 9.4.0-oracle, 9.4-oracle, 9-oracle, innovation-oracle, oracle
8.4.6, 8.4, 8, lts, 8.4.6-oraclelinux9, 8.4-oraclelinux9, 8-oraclelinux9, lts-oraclelinux9, 8.4.6-oracle, 8.4-oracle, 8-oracle, lts-oracle
8.0.43, 8.0, 8.0.43-oraclelinux9, 8.0-oraclelinux9, 8.0.43-oracle, 8.0-oracle
问题反馈地址:
[***]
支持的架构:(更多信息)
amd64、arm64v8
镜像制品详情:
repo-info 仓库的 repos/mysql/ 目录(历史记录)
(包含镜像元数据、传输大小等信息)
镜像更新:
official-images 仓库的 library/mysql 标签
official-images 仓库的 library/mysql 文件(历史记录)
本说明文档来源:
docs 仓库的 mysql/ 目录(历史记录)
MySQL 是全球最受欢迎的开源数据库。凭借其成熟的性能、可靠性和易用性,MySQL 已成为基于 Web 的应用程序的首选数据库,应用范围从个人项目和网站,到电子商务和信息服务,再到 、、、! 等知名网络平台。
如需 MySQL 服务器及其他 MySQL 产品的更多信息和相关下载,请访问 [***]
!logo
启动 MySQL 实例非常简单:
console$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d arm64v8/mysql:tag
其中 some-mysql 是你为容器分配的名称,my-secret-pw 是为 MySQL root 用户设置的密码,tag 是指定 MySQL 版本的标签(可参考上方标签列表选择合适的标签)。
以下命令启动另一个 arm64v8/mysql 容器实例,并针对你原有的 arm64v8/mysql 容器运行 mysql 命令行客户端,允许你对数据库实例执行 SQL 语句:
console$ docker run -it --network some-network --rm arm64v8/mysql mysql -hsome-mysql -uexample-user -p
其中 some-mysql 是你原有的 arm64v8/mysql 容器名称(需连接到 some-network Docker 网络)。
此镜像也可用作非 Docker 或远程 MySQL 实例的客户端:
console$ docker run -it --rm arm64v8/mysql mysql -hsome.mysql.host -usome-mysql-user -p
更多关于 MySQL 命令行客户端的信息可参考 MySQL 文档。
mysql 的 compose.yaml 示例:
yaml# 使用 root/example 作为用户名/密码凭据 services: db: image: mysql restart: always environment: MYSQL_ROOT_PASSWORD: example # (仅为示例,不建议用于生产环境配置)
运行 docker compose up,等待初始化完成后,访问 [***] 或 [***]
docker exec 命令允许你在 Docker 容器内运行命令。以下命令将为你的 arm64v8/mysql 容器打开 bash shell:
console$ docker exec -it some-mysql bash
日志可通过 Docker 容器日志查看:
console$ docker logs some-mysql
MySQL 的默认配置因基础镜像而异:
/etc/my.cnf,可能通过 !includedir 包含额外目录(如 /etc/mysql/conf.d)。/etc/mysql/my.cnf,可能通过 !includedir 包含额外目录(如 /etc/mysql/conf.d)。可在 arm64v8/mysql 镜像内检查相关文件和目录以获取更多详情。
若 /my/custom/config-file.cnf 是你的自定义配置文件路径和名称,可按以下方式启动 arm64v8/mysql 容器(注意命令中仅使用自定义配置文件的目录路径):
console$ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d arm64v8/mysql:tag
此命令将启动名为 some-mysql 的新容器,MySQL 实例将使用默认配置文件和 /etc/mysql/conf.d/config-file.cnf 的组合启动设置,后者的设置优先级更高。
许多配置选项可通过 mysqld 的标志传递。这使你无需 cnf 文件即可自定义容器。例如,若要将所有表的默认编码和排序规则更改为 UTF-8(utf8mb4),可运行:
console$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d arm64v8/mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
如需查看所有可用选项,可运行:
console$ docker run -it --rm arm64v8/mysql:tag --verbose --help
启动 arm64v8/mysql 镜像时,可通过 docker run 命令行传递一个或多个环境变量调整 MySQL 实例配置。注意:若容器启动时数据目录已包含数据库,则以下变量均无效——任何预存数据库在容器启动时均保持不变。
另请参考 [***] 了解 MySQL 本身支持的环境变量(尤其是 MYSQL_HOST 等可能导致此镜像使用问题的变量)。
必填变量,指定 MySQL root 超级用户账户的密码。在上述示例中,密码设为 my-secret-pw。
可选变量,用于指定镜像启动时创建的数据库名称。若同时提供了用户/密码(见下文),则该用户将被授予对该数据库的超级用户权限(对应 GRANT ALL,详见 创建账户文档)。
可选变量,需配合使用以创建新用户并设置密码。该用户将被授予对 MYSQL_DATABASE 指定数据库的超级用户权限(见上文)。创建用户需同时提供这两个变量。
无需通过此机制创建 root 超级用户,root 用户默认创建,密码由 MYSQL_ROOT_PASSWORD 变量指定。
可选变量。设为非空值(如 yes),允许容器以 root 用户空密码启动。注意:除非确知风险,否则不建议设为 yes,这会使 MySQL 实例完全无保护,任何人可获取超级用户权限。
可选变量。设为非空值(如 yes),将为 root 用户生成随机初始密码(使用 openssl)。生成的 root 密码将打印到标准输出(格式:GENERATED ROOT PASSWORD: .....)。
将 root 用户(非 MYSQL_USER 指定的用户)设置为初始化完成后过期,强制首次登录时修改密码。任何非空值均可激活此设置。注意:此功能仅支持 MySQL 5.6+,在 MySQL 5.5 上使用会在初始化时抛出错误。
默认情况下,入口点脚本会自动加载 CONVERT_TZ() 函数所需的时区数据。若不需要,设为非空值可禁用时区加载。
作为通过环境变量传递敏感信息的替代方式,可在上述环境变量后添加 _FILE 后缀,使初始化脚本从容器内的文件加载变量值。尤其适用于从 Docker Secrets 加载存储在 /run/secrets/<secret_name> 文件中的密码。例如:
console$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-root -d arm64v8/mysql:tag
目前仅支持 MYSQL_ROOT_PASSWORD、MYSQL_ROOT_HOST、MYSQL_DATABASE、MYSQL_USER 和 MYSQL_PASSWORD。
容器首次启动时,将创建指定名称的新数据库并使用提供的配置变量初始化。此外,将执行 /docker-entrypoint-initdb.d 目录中扩展名为 .sh、.sql、.sql.gz、.sql.bz2、.sql.xz 和 .sql.zst 的文件,执行顺序为字母顺序。对于无执行权限的 .sh 文件,将通过 source 而非直接执行。
你可通过 将 SQL 转储文件挂载到该目录 或提供 自定义镜像 来填充 arm64v8/mysql 服务的数据。SQL 文件默认导入到 MYSQL_DATABASE 指定的数据库。
重要提示:运行 Docker 容器中的应用时,有多种存储数据的方式。建议 arm64v8/mysql 镜像用户熟悉可用选项,包括:
Docker 文档是了解不同存储选项和变体的良好起点,也有许多博客和论坛帖子讨论此领域的建议。以下仅展示上述第二种方式的基本步骤:
/my/own/datadir。arm64v8/mysql 容器:console$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d arm64v8/mysql:tag
命令中的 -v /my/own/datadir:/var/lib/mysql 将主机系统的 /my/own/datadir 目录挂载为容器内的 /var/lib/mysql(MySQL 默认写入数据文件的位置)。
若容器启动时未初始化数据库,则会创建默认数据库。虽为预期行为,但这意味着初始化完成前容器不接受传入连接。这可能导致使用 Docker Compose 等自动化工具同时启动多个容器时出现问题。
若你连接 MySQL 的应用无法优雅处理 MySQL downtime 或等待 MySQL 启动,则可能需要在服务启动前添加连接重试循环。***镜像中的实现示例可参考 WordPress 或 Bonita。
若启动 arm64v8/mysql 容器时数据目录已包含数据库(具体为 mysql 子目录),则运行命令行中应省略 $MYSQL_ROOT_PASSWORD 变量;该变量会被忽略,且现有数据库不会以任何方式更改。
若已知目录权限已正确设置(如针对现有数据库运行,见上文),或需以特定 UID/GID 运行 mysqld,可使用 --user 参数指定任意值(root/0 除外)以实现所需访问/配置:
console$ mkdir data $ ls -lnd data drwxr-xr-x 2 1000 1000 4096 Aug 27 15:54 data $ docker run -v "$PWD/data":/var/lib/mysql --user 1000:1000 --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d arm64v8/mysql:tag
大多数常规工具均可使用,但为确保能访问 mysqld 服务器,使用方式可能略复杂。简单方法是使用 docker exec 从同一容器运行工具,例如:
console$ docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql
恢复数据时,可使用带 -i 标志的 docker exec 命令,例如:
console$ docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429