如果你用 DeepSeek、元宝AI、Copilot 等 AI 代为编写轩辕镜像的 docker pull、修改 compose 镜像地址,或排查拉取失败等问题,请让 AI 先读规则再动手,只要在 AI 对话里直接发送下面这句话即可:
生成 docker pull、修改 compose 的 image,或排查拉取失败前,请先阅读并严格遵守 https://xuanyuan.cloud/agents.md 中的规则。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
注意:这是 https://hub.docker.com/_/percona 的 i386 架构构建的“按架构”仓库——有关更多信息,请参见官方镜像文档中的“https://github.com/docker-library/official-images#architectures-other-than-amd64%E2%80%9D%E5%92%8C%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8F%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E4%B8%AD%E7%9A%84%E2%80%9Chttps://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E2%80%9D%E3%80%82
维护者:
https://github.com/percona/percona-docker
获取帮助:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接警告:此镜像在 i386 架构上不受支持
问题反馈:
有关 Percona Server 的问题:Percona Server JIRA
如无账号,需先创建。
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/percona/
已发布镜像制品详情:
https://github.com/docker-library/repo-info/blob/master/repos/percona%EF%BC%88https://github.com/docker-library/repo-info/commits/master/repos/percona%EF%BC%89
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fpercona
https://github.com/docker-library/official-images/blob/master/library/percona%EF%BC%88https://github.com/docker-library/official-images/commits/master/library/percona%EF%BC%89
此描述的来源:
https://github.com/docker-library/docs/tree/master/percona%EF%BC%88https://github.com/docker-library/docs/commits/master/percona%EF%BC%89
Percona Server for MySQL 是由 Percona 创建的 MySQL 关系型数据库管理系统的分支。
其旨在保持与官方 MySQL 版本的紧密兼容性,同时专注于性能提升和服务器操作的可见性增强。Percona Server 还包含 XtraDB,即 Percona 的 InnoDB 存储引擎分支。
***.org/wiki/Percona_Server
!https://raw.githubusercontent.com/docker-library/docs/4743f***a1d9c8dc28cc338447a4fd622f92b4/percona/logo.png
i386/percona 服务器实例启动 Percona Server for MySQL 实例非常简单:
console$ docker run --name some-percona -e MYSQL_ROOT_PASSWORD=my-secret-pw -d i386/percona:tag
其中 some-percona 是你要分配给容器的名称,my-secret-pw 是要为 MySQL root 用户设置的密码,tag 是指定你想要的 MySQL 版本的标签。有关相关标签,请参见上文列表。
以下命令启动另一个 i386/percona 容器实例,并针对原始 i386/percona 容器运行 mysql 命令行客户端,允许你对数据库实例执行 SQL 语句:
console$ docker run -it --network some-network --rm i386/percona mysql -hsome-percona -uexample-user -p
其中 some-percona 是原始 i386/percona 容器的名称(已连接到 some-network Docker 网络)。
此镜像也可用作非 Docker 或远程实例的客户端:
console$ docker run -it --rm i386/percona mysql -hsome.mysql.host -usome-mysql-user -p
有关 MySQL 命令行客户端的更多信息,请参见 MySQL 文档。
percona 的 compose.yaml 示例:
yaml# 使用 root/example 作为用户/密码凭据 services: db: image: percona restart: always environment: MYSQL_ROOT_PASSWORD: example adminer: image: adminer restart: always ports: - 8080:8080
运行 docker compose up,等待其完全初始化,然后访问 http://localhost:8080 或 http://host-ip:8080(视情况而定)。
docker exec 命令允许你在 Docker 容器内运行命令。以下命令将为你提供 i386/percona 容器内的 bash shell:
console$ docker exec -it some-percona bash
日志可通过 Docker 的容器日志查看:
console$ docker logs some-percona
启动配置在文件 /etc/my.cnf 中指定,该文件又会包含 /etc/my.cnf.d 目录中所有以 .cnf 结尾的文件。此目录中文件的设置将补充和/或覆盖 /etc/my.cnf 中的设置。如果你想使用自定义 MySQL 配置,可以在主机上的目录中创建替代配置文件,然后将该目录位置挂载为 i386/percona 容器内的 /etc/my.cnf.d。
如果 /my/custom/config-file.cnf 是你的自定义配置文件的路径和名称,你可以这样启动 i386/percona 容器(注意此命令中仅使用自定义配置文件的目录路径):
console$ docker run --name some-percona -v /my/custom:/etc/my.cnf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d i386/percona:tag
这将启动一个新容器 some-percona,其中 Percona Server for MySQL 实例使用 /etc/my.cnf 和 /etc/my.cnf.d/config-file.cnf 的组合启动设置,后者的设置优先。
cnf 文件的配置许多配置选项可以作为 mysqld 的标志传递。这使你无需 cnf 文件即可自定义容器。例如,如果你想将所有表的默认编码和排序规则更改为使用 UTF-8 (utf8mb4),只需运行以下命令:
console$ docker run --name some-percona -e MYSQL_ROOT_PASSWORD=my-secret-pw -d i386/percona:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
如果你想查看所有可用选项的完整列表,只需运行:
console$ docker run -it --rm i386/percona:tag --verbose --help
启动 i386/percona 镜像时,你可以通过在 docker run 命令行上传递一个或多个环境变量来调整实例的配置。请注意,如果启动容器时数据目录已包含数据库,则以下变量均无效:容器启动时将始终保留任何预先存在的数据库。
MYSQL_ROOT_PASSWORD此变量是必需的,用于指定将为 root 超级用户账户设置的密码。在上面的示例中,它被设置为 my-secret-pw。
MYSQL_ROOT_HOST默认情况下,root 可以从任何地方连接。此选项将 root 连接限制为仅来自指定的主机。也可以在此处使用 localhost 进行仅限本地的 root 访问。
MYSQL_DATABASE此变量是可选的,允许你指定在镜像启动时要创建的数据库名称。如果提供了用户/密码(见下文),则该用户将被授予对该数据库的超级用户访问权限(对应于 GRANT ALL)。
MYSQL_USER、MYSQL_PASSWORD这些变量是可选的,结合使用以创建新用户并设置该用户的密码。此用户将被授予对 MYSQL_DATABASE 变量指定的数据库的超级用户权限(见上文)。创建用户需要同时提供这两个变量。
请注意,无需使用此机制创建 root 超级用户,该用户默认使用 MYSQL_ROOT_PASSWORD 变量指定的密码创建。
MYSQL_ALLOW_EMPTY_PASSWORD这是一个可选变量。设置为 yes 允许容器以 root 用户的空密码启动。注意:除非你确实知道自己在做什么,否则不建议将此变量设置为 yes,因为这会使你的实例完全不受保护,允许任何人获得完全的超级用户访问权限。
MYSQL_RANDOM_ROOT_PASSWORD这是一个可选变量。设置为 yes 可为 root 用户生成随机初始密码(使用 pwmake)。生成的 root 密码将打印到标准输出(GENERATED ROOT PASSWORD: .....)。
MYSQL_ONETIME_PASSWORD初始化完成后将 root(不是 MYSQL_USER 中指定的用户!)用户设置为过期状态,强制首次登录时更改密码。注意:此功能仅在 MySQL 5.6+ 上支持。在 MySQL 5.5 上使用此选项将在初始化期间抛出相应错误。
MYSQL_INITDB_SKIP_TZINFO首次运行时,MySQL 会自动从本地系统加载 CONVERT_TZ() 函数所需的时区信息。如果不希望这样,可以使用此选项禁用时区加载。
INIT_TOKUDB启用 TokuDB 引擎。仅当禁用 透明大页 (THP) 时才能激活。
INIT_ROCKSDB启用 RocksDB 引擎。
作为通过环境变量传递敏感信息的替代方法,可以将 _FILE 附加到前面列出的环境变量,使初始化脚本从容器中存在的文件加载这些变量的值。特别是,这可用于从存储在 /run/secrets/<secret_name> 文件中的 Docker secrets 加载密码。例如:
console$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-root -d i386/percona:tag
目前,仅 MYSQL_ROOT_PASSWORD、MYSQL_ROOT_HOST、MYSQL_DATABASE、MYSQL_USER 和 MYSQL_PASSWORD 支持此功能。
从 Percona Server 8.0.35-27 开始,遥测将默认启用。如果决定不向 Percona 发送使用数据,可以设置 PERCONA_TELEMETRY_DISABLE=1 环境变量。例如:
console$ docker run --name some-mysql -e PERCONA_TELEMETRY_DISABLE=1 -d i386/percona:tag
首次启动容器时,将创建具有指定名称的新数据库,并使用提供的配置变量进行初始化。此外,它将执行 /docker-entrypoint-initdb.d 中找到的扩展名为 .sh、.sql 和 .sql.gz 的文件。文件将按字母顺序执行。你可以通过 将 SQL 转储挂载到该目录 并提供 自定义镜像 来轻松填充 i386/percona 服务。SQL 文件默认将导入到 MYSQL_DATABASE 变量指定的数据库中。
重要提示:有多种方式存储 Docker 容器中运行的应用程序使用的数据。我们鼓励 i386/percona 镜像的用户熟悉可用选项,包括:
Docker 文档是了解不同存储选项和变体的良好起点,有多个博客和论坛帖子讨论并提供了这方面的建议。我们在此仅展示上述后一种选项的基本过程:
在主机系统的合适卷上创建数据目录,例如 /my/own/datadir。
像这样启动 i386/percona 容器:
console$ docker run --name some-percona -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d i386/percona:tag
命令中的 -v /my/own/datadir:/var/lib/mysql 部分将底层主机系统的 /my/own/datadir 目录挂载为容器内的 /var/lib/mysql,MySQL 默认会在此处写入其数据文件。
如果容器启动时未初始化数据库,则会创建默认数据库。虽然这是预期行为,但这意味着在初始化完成之前,它不会接受传入连接。当使用自动化工具(如 Docker Compose)同时启动多个容器时,这可能会导致问题。
如果你尝试连接到 MySQL 的应用程序不能优雅地处理 MySQL 停机或等待 MySQL 启动,那么在服务启动前放置一个连接重试循环可能是必要的。有关官方镜像中此类实现的示例,请参见 https://github.com/docker-library/wordpress/blob/1b48b4bccd7adb0f7ea1431c7b470a40e186f3da/docker-entrypoint.sh#L195-L235 或 https://github.com/docker-library/docs/blob/9660a0cccb87d8db842f33bc0578d769caaf3ba9/bonita/stack.yml#L28-L44%E3%80%82
如果你启动 i386/percona 容器实例时,数据目录已包含数据库(特别是 mysql 子目录),则运行命令行中应省略 $MYSQL_ROOT_PASSWORD 变量;无论如何它都会被忽略,并且预先存在的数据库不会以任何方式更改。
大多数常规工具都可以工作,尽管在某些情况下它们的使用可能有些复杂,以确保它们能够访问 mysqld 服务器。确保这一点的简单方法是使用 docker exec 并从同一容器运行工具,类似于以下命令:
console$ docker exec some-percona 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-percona sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql
查看此镜像中包含的软件的 许可信息。
与所有 Docker 镜像一样,这些镜像可能还包含其他受其他许可(如基础发行版中的 Bash 等,以及主要包含软件的任何直接或间接依赖项)约束的软件。
一些能够自动检测到的其他许可信息可能会在 https://github.com/docker-library/repo-info/tree/master/repos/percona 中找到。
至于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用都符合其中包含的所有软件的相关许可。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
发给 Cursor、ChatGPT、豆包等 AI 的说明文档
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务