
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
这是Percona Server 8.4 LTS的Docker硬化镜像(DHI),旨在为生产部署提供最小***面。
镜像地址: evgeniypatlan/test-images:percona-server-8.4-hardened
基础镜像: dhi.io/debian-base:trixie(由Docker签名并包含SBOM)
运行用户: mysql(uid 1001)
架构: linux/amd64
bash# 带密码的单节点部署 docker run -d --name ps \ -e MYSQL_ROOT_PASSWORD=secret \ -v ps-data:/var/lib/mysql \ evgeniypatlan/test-images:percona-server-8.4-hardened # 带初始化 schema 和应用用户的部署 docker run -d --name ps \ -e MYSQL_ROOT_PASSWORD=rootpw \ -e MYSQL_DATABASE=app \ -e MYSQL_USER=appuser \ -e MYSQL_PASSWORD=apppw \ -v ps-data:/var/lib/mysql \ -v $(pwd)/initdb:/docker-entrypoint-initdb.d:ro \ evgeniypatlan/test-images:percona-server-8.4-hardened # 硬化运行时配置 docker run -d --name ps \ --read-only \ --tmpfs /tmp:rw,size=64m,mode=1777 \ --tmpfs /var/run/mysqld:rw,size=8m,uid=1001,gid=1001,mode=0755 \ --security-opt no-new-privileges:true \ --cap-drop ALL --cap-add CHOWN --cap-add SETGID --cap-add SETUID \ -e MYSQL_ROOT_PASSWORD=secret \ -v ps-data:/var/lib/mysql \ evgeniypatlan/test-images:percona-server-8.4-hardened
| 变量 | 默认值 | 描述 |
|---|---|---|
MYSQL_ROOT_PASSWORD | (必填) | 根用户密码(支持_FILE后缀读取文件) |
MYSQL_ALLOW_EMPTY_PASSWORD | 未设置 | 设置为yes允许空密码 |
MYSQL_DATABASE | 未设置 | 首次启动时创建的应用数据库 |
MYSQL_USER / MYSQL_PASSWORD | 未设置 | 首次启动时创建的应用用户及密码 |
PERCONA_TELEMETRY_DISABLE | 0(开启) | 设置为1关闭遥测 |
不支持的功能(会抛出明确错误,建议使用percona/percona-server:8.4):
MYSQL_RANDOM_ROOT_PASSWORD、MYSQL_ROOT_HOST != localhost、MYSQL_ONETIME_PASSWORD、INIT_ROCKSDB、INIT_TOKUDB、/docker-entrypoint-initdb.d/中的.sh或.sql.gz文件。
该镜像不含mysql客户端,建议使用Sidecar客户端容器:
bash# 通过共享网络命名空间的TCP连接(使用MYSQL_USER@'%',不支持root) docker run --rm --network container:ps \ mysql:8.4 mysql -h127.0.0.1 -uappuser -papppw app # 通过docker exec使用socket进行管理 docker exec ps mysqladmin -uroot -p"$MYSQL_ROOT_PASSWORD" status
TCP根访问被刻意阻止:服务器启用skip-name-resolve,且入口脚本仅创建root@localhost(仅匹配UNIX socket连接)。
内置健康检查:每30秒执行mysqladmin ping -h127.0.0.1,启动等待期60秒,重试3次。docker ps会显示(healthy)状态,可在Docker Compose中使用depends_on: condition: service_healthy。
USER mysql(uid 1001),无setuid二进制文件dhi.io/debian-base:trixie,由Docker签名并包含SBOMapt、dpkg、bash、mysql客户端、mysqlsh、mysqldump、mysql_upgrade或交互式shelldash作为/bin/sh,无libreadline/libtinfo/ncurses(相比普通Debian基础镜像减少4个高危CVE)sd_notify()调用同时消除CVE风险ldd检测所需的库,无完整Debian用户空间root和mysql用户/usr/local/percona-server.spdx.jsonINSTALL PLUGIN加载最新构建的镜像经Trivy扫描结果:
percona-telemetry-agent的Go标准库(≤1.26.1);需Percona使用Go 1.26.2重建修复。若这些CVE影响部署,可在运行时设置PERCONA_TELEMETRY_DISABLE=1。percona/percona-server:8.4的区别| 特性 | 非硬化版 | 硬化版 |
|---|---|---|
| 镜像大小 | ~700 MB | ~300–400 MB |
mysql客户端 | 有 | 无 |
mysqlsh/mysqldump/mysql_upgrade | 有 | 无 |
MYSQL_RANDOM_ROOT_PASSWORD | 支持 | 不支持 |
.sh/.sql.gz初始化文件 | 支持 | 不支持 |
| Shell | bash | dash |
| 基础镜像 | redhat/ubi9-minimal | dhi.io/debian-base:trixie |
| libsystemd | 真实库 | Stub实现 |
Percona Server二进制文件相同,仅运行环境不同。若上述“不支持”特性对您的场景重要,建议使用非硬化版镜像。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务