本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Node.js 是一个基于 V8 JavaScript 引擎构建的运行时环境。其事件驱动、非阻塞 I/O 模型支持开发快速、可扩展且数据密集型的服务器应用程序。
Node.js 概述 商标声明:本软件列表由 Bitnami 打包。产品中提及的各个商标分别归各自公司所有,使用这些商标并不意味着任何关联或认可。
docker 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 注册表 拉取预构建镜像。
docker pull bitnami/node:latest
要使用特定版本,您可以拉取带版本的标签。您可以在 Docker Hub 注册表中查看 可用版本列表。
docker pull bitnami/node:[TAG]
如果需要,您也可以通过克隆仓库、切换到包含 Dockerfile 的目录并执行 docker build 命令来自行构建镜像。请记住将下面示例命令中的 APP、VERSION 和 OPERATING-SYSTEM 路径占位符替换为正确的值。
git clone [***] cd bitnami/APP/VERSION/OPERATING-SYSTEM docker build -t bitnami/APP:latest .
默认情况下,运行此镜像会将您带入 Node.js REPL,您可以在其中交互式地测试和尝试 Node.js 功能。
docker run -it --name node bitnami/node
延伸阅读:
Node.js 镜像的默认工作目录是 /app。您可以将主机上包含 Node.js 脚本的文件夹挂载到此目录,并使用 node 命令正常运行它。
docker run -it --name node -v /path/to/app:/app bitnami/node \ node script.js
如果您的 Node.js 应用有定义应用依赖和启动脚本的 package.json,您可以在运行应用之前安装依赖。
docker 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 文件:
node: ... 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 将在构建时获取。文件内容应如下所示://registry.npmjs.org/:_authToken=${NPM_TOKEN}
npmrc 文件,使用 ARG 参数添加预期的 NPM_TOKEN,并在 npm install 完成后删除 npmrc 文件。以下是 Dockerfile 示例:
FROM bitnami/node ARG NPM_TOKEN COPY npmrc /root/.npmrc COPY . /app WORKDIR /app RUN npm install CMD node app.js
docker build 命令如下:docker build --build-arg NPM_TOKEN=${NPM_TOKEN} .
注意: 末尾的 "." 表示 docker build 使用当前目录作为参数。
恭喜!您现在已登录到 npm 仓库。
默认情况下,镜像暴露容器的 3000 端口。您可以将此端口用于 Node.js 应用服务器。
以下是 express.js 应用的示例,它在 3000 端口上监听远程连接:
var 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 端口。
docker run -it --name node -v /path/to/app:/app -P bitnami/node node index.js
运行 docker port 以确定 Docker 分配的随机端口。
$ docker port node 3000/tcp -> 0.0.0.0:32769
您也可以指定要从主机转发到容器的端口。
docker 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 实例等。
docker network create app-tier --driver bridge
让我们创建一个 nginx 虚拟主机来反向代理到 Node.js 容器。
server { 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 容器中。
docker run -it --name myapp --network app-tier \ -v /path/to/app:/app \ bitnami/node node index.js
docker run -it \ -v /path/to/vhost.conf:/bitnami/nginx/conf/vhosts/yourapp.conf:ro \ --network app-tier \ bitnami/nginx
Bitnami 会在 Node.js 上游版本发布后尽快提供更新版本,包括安全补丁。我们建议您按照以下步骤升级容器。
docker pull bitnami/node:latest
docker rm -v node
从新镜像重新创建容器。
docker 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429