本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
此仓库为 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 实例非常简单:
$ 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 语句:
$ docker run -it --network some-network --rm arm64v8/mysql mysql -hsome-mysql -uexample-user -p
其中 some-mysql 是你原有的 arm64v8/mysql 容器名称(需连接到 some-network Docker 网络)。
此镜像也可用作非 Docker 或远程 MySQL 实例的客户端:
$ docker run -it --rm arm64v8/mysql mysql -hsome.mysql.host -usome-mysql-user -p
更多关于 MySQL 命令行客户端的信息可参考 MySQL 文档。
mysql 的 compose.yaml 示例:
# 使用 root/example 作为用户名/密码凭据 services: db: image: mysql restart: always environment: MYSQL_ROOT_PASSWORD: example # (仅为示例,不建议用于生产环境配置)
运行 docker compose up,等待初始化完成后,访问 [***] 或 [***]
docker exec 命令允许你在 Docker 容器内运行命令。以下命令将为你的 arm64v8/mysql 容器打开 bash shell:
$ docker exec -it some-mysql bash
日志可通过 Docker 容器日志查看:
$ 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 容器(注意命令中仅使用自定义配置文件的目录路径):
$ 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),可运行:
$ 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
如需查看所有可用选项,可运行:
$ 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> 文件中的密码。例如:
$ 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 容器:$ 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 除外)以实现所需访问/配置:
$ 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 从同一容器运行工具,例如:
$ 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 命令,例如:
$ 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429