
nodejs镜像是一个用于在容器中运行Node.js应用的Docker镜像,基于Ubuntu系统构建,并集成了s6进程管理工具。该镜像继承自smebberson/ubuntu-base,提供了便捷的Node.js应用启动方式,并通过s6确保应用在崩溃时自动重启,提升应用可靠性。
console.log)适用于需要在容器环境中稳定运行的Node.js应用场景,包括:
在Dockerfile中继承此镜像:
dockerfileFROM smebberson/nodejs
添加应用源代码
将Node.js应用代码复制到容器中,建议放置在/app目录:
dockerfileCOPY . /app
安装依赖
使用npm安装应用所需依赖:
dockerfileRUN cd /app && npm install
配置s6进程管理
通过以下步骤配置s6以管理应用启动:
创建s6配置目录(需位于/etc/s6/下,名称可自定义):
dockerfileRUN mkdir -p /etc/s6/app
创建run文件并赋予执行权限,文件内容为应用启动命令:
dockerfileRUN echo '#!/usr/bin/env bash\ncd /app\nexec node server.js' > /etc/s6/app/run && chmod +x /etc/s6/app/run
注:上述示例假设应用入口文件为server.js,需根据实际情况调整
暴露端口
根据应用需求暴露端口,例如暴露3000端口:
dockerfileEXPOSE 3000
完整Dockerfile示例:
dockerfileFROM smebberson/nodejs # 复制应用代码 COPY . /app # 安装依赖 RUN cd /app && npm install # 配置s6启动脚本 RUN mkdir -p /etc/s6/app && \ echo '#!/usr/bin/env bash\ncd /app\nexec node server.js' > /etc/s6/app/run && \ chmod +x /etc/s6/app/run # 暴露端口 EXPOSE 3000
构建镜像:
bashdocker build -t my-nodejs-app .
运行容器:
bashdocker run -d -p 3000:3000 my-nodejs-app
应用通过console.log输出的日志可通过Docker标准日志命令查看:
bashdocker logs <容器ID或名称>
为确保应用稳定性,建议处理未捕获异常:捕获异常、记录日志并退出进程,由s6自动重启应用。示例代码:
javascriptprocess.on('uncaughtException', function (e) { console.log('未捕获异常:', e); process.exit(1); // 退出进程,s6将自动重启 });
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务