
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
一个轻量级多架构Alpine Linux Docker镜像,在官方Alpine基础上仅增加约50KB,集成了tini init系统、模块化入口点和su-exec权限降低功能,支持多种硬件架构,适合作为构建其他容器的基础镜像。
该镜像基于Alpine Linux,专注于轻量级和安全性,主要特点包括:
以下环境变量可控制入口点行为,可通过ENV指令在Dockerfile中设置或通过docker run -e参数传递:
控制权限降低
DOCKER_UID:默认"12345",普通用户UIDDOCKER_GID:默认"23456",普通用户组GIDDOCKER_USER:默认"user",普通用户名DOCKER_GROUP:默认"user",普通用户组名控制入口点行为
ENTRYPOINT_D:默认"/etc/docker-entrypoint.d",配置脚本目录ENTRYPOINT_RUN_AS_ROOT:默认"",非空时禁用权限降低ENTRYPOINT_SKIP_CONFIG:默认"",非空时禁用配置脚本执行ENTRYPOINT_LOG_THRESHOLD:默认1,日志级别阈值(1=调试,2=信息,3=警告,4=错误,≥5=禁用)可在ENTRYPOINT_D目录中放置额外配置脚本,入口点会在执行CMD前运行所有带可执行权限的.sh脚本。添加方式:
COPY指令复制脚本到${ENTRYPOINT_D}-v参数挂载脚本到${ENTRYPOINT_D}dockerfileFROM padhihomelab/alpine-base # 修改环境变量默认值(如有需要) ENV ENTRYPOINT_LOG_THRESHOLD 3 # 添加配置脚本(如有需要) COPY config_scripts/*.sh ${ENTRYPOINT_D}/ RUN chmod +x ${ENTRYPOINT_D}/*.sh # ... 其他自定义配置 ...
注意:请勿修改镜像的ENTRYPOINT指令
通常建议运行时设置DOCKER_UID以匹配宿主机用户UID,避免权限问题:
console$ docker run -e DOCKER_UID=`id -u` -i padhihomelab/alpine-base ps aux 2020-11-22 11:27:43 docker-entrypoint (INFO) 创建用户组 'user',GID=23456... 2020-11-22 11:27:43 docker-entrypoint (DBUG) + 用户组创建成功。 2020-11-22 11:27:43 docker-entrypoint (INFO) 创建用户 'user',UID=1000,隶属组 'user'... 2020-11-22 11:27:43 docker-entrypoint (DBUG) + 用户创建成功。 2020-11-22 11:27:43 docker-entrypoint (INFO) /etc/docker-entrypoint.d 中未找到文件,跳过配置。 2020-11-22 11:27:43 docker-entrypoint (INFO) 准备启动! PID USER TIME COMMAND 1 root 0:00 tini /usr/local/bin/docker-entrypoint ps aux 6 user 0:00 ps aux
是的,当容器需要写入宿主机文件系统时建议覆盖。若仅进行只读操作或不使用宿主机卷,则无需设置。
$DOCKER_UID,若与宿主机用户UID不一致,宿主机处理文件会有困难更多细节可参考@vsupalov的博客文章:Avoiding Permission Issues With Docker-Created Files。
tini是一个极轻量级的init系统。详情可参考https://github.com/Yelp的文章:"https://github.com/Yelp/dumb-init#why-you-need-an-init-system"。
主要原因是tini支持Zombie processes的https://github.com/krallin/tini#subreaping,而dumb-init不支持。具体原因可参考Hongli Lai的博客文章:"Docker and the PID 1 zombie reaping problem"。
更多细节:
su-exec用于在运行命令前将权限从root降低到$DOCKER_USER。除确实需要root权限运行的场景外,建议使用以提升安全性。
相关安全讨论:
主要原因是su-exec比gosu体积更小,且没有su和sudo的特性缺陷。更多细节:
s6功能强大,包含tini和su-exec的功能及更多工具,但对于大多数轻量级使用场景(如小型单板计算机)而言过于重量级,本镜像追求最小体积和资源占用。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务