
一个轻量级多架构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的功能及更多工具,但对于大多数轻量级使用场景(如小型单板计算机)而言过于重量级,本镜像追求最小体积和资源占用。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
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
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务