Skip to content

快速参考

  • 维护者:
    Node.js Docker 团队

  • 获取帮助的途径:
    Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow

支持的标签和相应的 Dockerfile 链接

快速参考(续)

Node.js 是什么?

Node.js 是一个用于可扩展服务器端和网络应用程序的软件平台。Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行,无需更改。

Node.js 应用程序旨在通过使用非阻塞 I/O 和异步事件来最大化吞吐量和效率。Node.js 应用程序是单线程运行的,尽管 Node.js 会为文件和网络事件使用多个线程。由于其异步特性,Node.js 通常用于实时应用程序。

Node.js 在内部使用 Google V8 JavaScript 引擎来执行代码;很大一部分基本模块是用 JavaScript 编写的。Node.js 包含一个内置的异步 I/O 库,用于文件、套接字和 HTTP 通信。HTTP 和套接字支持允许 Node.js 充当 Web 服务器,而无需其他软件,如 Apache。

wikipedia.org/wiki/Node.js

logo

如何使用此图像

请在 GitHub 上查看如何使用此图像以获取最新文档。

图像变体

node 图像有多种类型,每种都针对特定的用例进行了设计。

node:<version>

这是默认的镜像。如果您不确定自己的需求是什么,您可能想要使用这个。它被设计为既可以用作一次性容器(挂载您的源代码并启动容器以启动您的应用程序),也可以用作构建其他镜像的基础。

其中一些标签可能有像 bookworm 或 bullseye 这样的名称。这些是 Debian 发行版的套件代号,表明该映像基于哪个发行版。如果您的映像需要安装除映像附带的软件包之外的任何其他软件包,您可能需要明确指定其中一个,以在有新的 Debian 发行版时最大程度地减少损坏。

此标签基于 buildpack-depsbuildpack-deps 是为系统上有许多映像的 Docker 普通用户设计的。它在设计上具有大量极其常见的 Debian 软件包。这减少了从中派生的映像需要安装的软件包数量,从而减少了系统上所有映像的总体大小。

node:<version>-alpine

该镜像基于流行的 Alpine Linux 项目,可在 alpine 官方镜像中使用。Alpine Linux 比大多数发行版基础镜像(约 5MB)小得多,因此通常会生成更精简的镜像。

当您主要关注最终图像大小尽可能小时,此变体很有用。需要注意的主要警告是,它确实使用 musl libc 而不是 glibc 等,因此软件通常会根据其 libc 要求/假设的深度遇到问题。有关可能出现的问题以及使用基于 Alpine 的映像的一些优缺点比较的更多讨论,请参阅此 Hacker News 评论线程。

为了最小化镜像大小,在基于 Alpine 的镜像中包含额外的相关工具(如 gitbash )是不常见的。使用此镜像作为基础,在您自己的 Dockerfile 中添加您需要的东西(如果您不熟悉如何安装软件包,请参阅 alpine 镜像描述中的示例)。

node:<version>-slim

此映像不包含默认标记中包含的常见软件包,仅包含运行 node 所需的最小软件包。除非您在仅部署 node 映像且有空间限制的环境中工作,否则我们强烈建议使用此存储库的默认映像。

许可证

查看 Node.js 的许可信息或 Node.js Docker 项目的许可信息。

与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能受其他许可证的约束(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。

一些能够自动检测到的额外许可证信息可能会在 repo-info 存储库的 node/ 目录中找到。

对于任何预构建的映像使用,映像用户有责任确保对此映像的任何使用都符合其中包含的所有软件的任何相关许可证。