Node.js 是一个基于 V8 JavaScript 引擎构建的运行时环境。其事件驱动、非阻塞 I/O 模型支持开发快速、可扩展且数据密集型的服务器应用程序。
Node.js 概述 商标声明:本软件列表由 Bitnami 打包。产品中提及的各个商标分别归各自公司所有,使用这些商标并不意味着任何关联或认可。
consoledocker run -it --name node bitnami/node:latest
这是由 Bitnami 构建和维护的经过强化的最小 CVE 镜像。Bitnami 安全镜像基于云优化、安全强化的企业级 Photon Linux 操作系统。选择 BSI 镜像的理由:
每个镜像都附带有价值的安全元数据。您可以在 我们的公共目录 中查看元数据。注意:某些数据仅对 BSI 商业订阅 用户可用。
如果您正在寻找我们基于 Debian Linux 的上一代镜像,请参阅 Bitnami Legacy 注册表。
Dockerfile 链接了解更多关于 Bitnami 标签政策以及滚动标签和不可变标签之间的区别,请参阅 我们的文档页面。
您可以通过查看分支文件夹中的 tags-info.yaml 文件(即 bitnami/ASSET/BRANCH/DISTRO/tags-info.yaml)来了解不同标签之间的对应关系。
通过关注 bitnami/containers GitHub 仓库 订阅项目更新。
获取 Bitnami Node.js Docker 镜像的推荐方式是从 Docker Hub 注册表 拉取预构建镜像。
consoledocker pull bitnami/node:latest
要使用特定版本,您可以拉取带版本的标签。您可以在 Docker Hub 注册表中查看 可用版本列表。
consoledocker pull bitnami/node:[TAG]
如果需要,您也可以通过克隆仓库、切换到包含 Dockerfile 的目录并执行 docker build 命令来自行构建镜像。请记住将下面示例命令中的 APP、VERSION 和 OPERATING-SYSTEM 路径占位符替换为正确的值。
consolegit clone [***] cd bitnami/APP/VERSION/OPERATING-SYSTEM docker build -t bitnami/APP:latest .
默认情况下,运行此镜像会将您带入 Node.js REPL,您可以在其中交互式地测试和尝试 Node.js 功能。
consoledocker run -it --name node bitnami/node
延伸阅读:
Node.js 镜像的默认工作目录是 /app。您可以将主机上包含 Node.js 脚本的文件夹挂载到此目录,并使用 node 命令正常运行它。
consoledocker run -it --name node -v /path/to/app:/app bitnami/node \ node script.js
如果您的 Node.js 应用有定义应用依赖和启动脚本的 package.json,您可以在运行应用之前安装依赖。
consoledocker run --rm -v /path/to/app:/app bitnami/node npm install docker run -it --name node -v /path/to/app:/app bitnami/node npm start
或者通过修改此仓库中提供的 docker-compose.yml 文件:
yamlnode: ... command: "sh -c 'npm install && npm start'" volumes: - .:/app ...
延伸阅读:
Bitnami 安全镜像 目录中的 Bitnami Node.js Docker 镜像包含额外功能和设置,可配置容器的 FIPS 功能。您可以配置以下环境变量:
OPENSSL_FIPS:OpenSSL 是否以 FIPS 模式运行。yes(默认)、no。要使用 npm 私有模块,必须登录 npm。npm CLI 使用 auth tokens 进行身份验证。有关如何获取令牌的更多信息,请查看*** npm 文档。
如果您在 Docker 环境中工作,可以通过以下方式在构建时将令牌注入 Dockerfile 中:
npmrc 文件。它包含 npm 命令对 npmjs.org 注册表进行身份验证的指令。NPM_TOKEN 将在构建时获取。文件内容应如下所示:console//registry.npmjs.org/:_authToken=${NPM_TOKEN}
npmrc 文件,使用 ARG 参数添加预期的 NPM_TOKEN,并在 npm install 完成后删除 npmrc 文件。以下是 Dockerfile 示例:
dockerfileFROM bitnami/node ARG NPM_TOKEN COPY npmrc /root/.npmrc COPY . /app WORKDIR /app RUN npm install CMD node app.js
docker build 命令如下:consoledocker build --build-arg NPM_TOKEN=${NPM_TOKEN} .
注意: 末尾的 "." 表示 docker build 使用当前目录作为参数。
恭喜!您现在已登录到 npm 仓库。
默认情况下,镜像暴露容器的 3000 端口。您可以将此端口用于 Node.js 应用服务器。
以下是 express.js 应用的示例,它在 3000 端口上监听远程连接:
javascriptvar express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello World!'); }); var server = app.listen(3000, '0.0.0.0', function () { var host = server.address().address; var port = server.address().port; console.log('Example app listening at [***] host, port); });
要从主机访问 Web 服务器,您可以让 Docker 将主机上的随机端口映射到容器内的 3000 端口。
consoledocker run -it --name node -v /path/to/app:/app -P bitnami/node node index.js
运行 docker port 以确定 Docker 分配的随机端口。
console$ docker port node 3000/tcp -> 0.0.0.0:32769
您也可以指定要从主机转发到容器的端口。
consoledocker run -it --name node -p 8080:3000 -v /path/to/app:/app bitnami/node node index.js
通过在浏览器中导航到 http://localhost:8080 访问 Web 服务器。
如果要在另一个容器内连接到 Node.js Web 服务器,可以使用 Docker 网络创建网络并将所有容器附加到该网络。
我们可能希望仅通过 nginx Web 服务器访问 Node.js Web 服务器。这样做可以设置更复杂的配置,使用 nginx 提供静态资源,负载均衡到不同的 Node.js 实例等。
consoledocker network create app-tier --driver bridge
让我们创建一个 nginx 虚拟主机来反向代理到 Node.js 容器。
nginxserver { listen 0.0.0.0:80; server_name yourapp.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header HOST $http_host; proxy_set_header X-NginX-Proxy true; # proxy_pass http://[your_node_container_link_alias]:3000; proxy_pass [***] proxy_redirect off; } }
注意我们已替换为链接别名 myapp,我们将在创建容器时使用相同的名称。
复制上面的虚拟主机配置,将文件保存在主机上的某个位置。我们将把它作为卷挂载到 nginx 容器中。
consoledocker run -it --name myapp --network app-tier \ -v /path/to/app:/app \ bitnami/node node index.js
consoledocker run -it \ -v /path/to/vhost.conf:/bitnami/nginx/conf/vhosts/yourapp.conf:ro \ --network app-tier \ bitnami/nginx
Bitnami 会在 Node.js 上游版本发布后尽快提供更新版本,包括安全补丁。我们建议您按照以下步骤升级容器。
consoledocker pull bitnami/node:latest
consoledocker rm -v node
从新镜像重新创建容器。
consoledocker run --name node bitnami/node:latest
docker-compose.yaml 文件已被移除,因为它仅用于内部测试目的。root 用户执行。使用 --user 参数切换到其他用户,或使用 sudo 更改为所需用户以启动应用程序。此外,从 Docker 1.10 开始,docker 守护进程支持用户命名空间。有关更多详细信息,请参阅 守护进程用户命名空间选项。bitnami 用户可以安装全局 npm 模块而无需 sudo。/app 目录不再作为卷导出。这在基于镜像构建时会导致问题,因为卷中的更改不会在 Dockerfile RUN 指令之间保留。要保持以前的行为(以便您可以在另一个容器中挂载卷),请使用 -v /app 选项创建容器。我们欢迎您为此 Docker 镜像做出贡献。您可以通过创建 issue 请求新功能,或提交 pull request 贡献代码。
如果您在运行此容器时遇到问题,可以提交 issue。为了让我们提供更好的支持,请务必填写 issue 模板。
版权所有 © 2025 Broadcom。术语“Broadcom”指 Broadcom Inc. 和/或其子公司。
根据 Apache 许可证 2.0 版(“许可证”)授权;除非遵守许可证,否则您不得使用此文件。您可以在以下位置获取许可证副本:
<[***]>
除非适用***要求或书面同意,否则根据许可证分发的软件按“原样”分发,不附带任何明示或暗示的担保或条件。有关许可证下权限和限制的具体语言,请参阅许可证。

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429