本仓库包含带有 Node.js 及相关工具(npm)的强化容器 Stream 镜像。
该镜像与 https://hub.docker.com/_/node/ 兼容,并具有以下显著改进:
root 用户(node)执行应用。ENTRYPOINT ["/usr/sbin/tini", "--"]。/usr/bin/node 二进制文件。适用于对安全性要求较高的 Node.js 应用部署,尤其是需要最小化***面、控制镜像体积或确保进程信号正确处理的场景。
以下是基于 nodejs.org 的基础 HTTP 服务器应用构建镜像的步骤。
首先创建 server.js 文件,内容如下:
javascriptimport { createServer } from 'node:http'; const server = createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World!\n'); }); server.listen(3000, '0.0.0.0', () => { console.log('Listening on 0.0.0.0:3000'); });
然后创建 Dockerfile:
dockerfileFROM bellsoft/hardened-nodejs:musl WORKDIR /app COPY server.js . ENTRYPOINT ["/usr/sbin/tini", "--"] CMD ["node", "server.js"]
请注意,我们将 tini 配置为入口点,这使镜像能够正确处理信号。
最后,构建并运行镜像:
shell$ docker build -t hardened-node-example . $ docker run --rm -p 3000:3000 hardened-node-example Listening on 0.0.0.0:3000
访问服务将得到预期结果:
shell$ curl http://127.0.0.1:3000 Hello World! $
强化容器镜像支持最新的 Node.js 主要版本,并为每种 libc 类型提供标签:
与所有 Docker 镜像一样,本镜像包含其他软件,这些软件可能以其他许可证分发。
已安装软件组件及其许可证列表可通过在镜像中执行 grep -E '^[PVL]:' /var/lib/apk/db/installed 命令获取。
对于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用均符合其中包含的所有软件的相关许可证要求。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






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