node:8.11.1-alpine
tag
对于节点图像。这个特别的是基于
Alpine Linux
-一个轻量级Linux发行版,由于占用空间小,在构建Docker映像时经常使用它。
如果你不确定你应该选择哪一个基本图像,那就看一下
the documentation at DockerHub
. 它列出了当前支持的所有标记,并描述了节点图像的不同风格(“图像变体”部分)。
图像变体
这个
node
图像有很多种风格,每种都是为特定的用例设计的。
node:<version>
这是真实的图像。如果你不确定你的需求是什么,你可能想用这个。它被设计成一个一次性的容器(装载你的源代码并启动容器来启动你的应用程序),同时也是一个构建其他图片的基础。此标签基于
buildpack-deps
.
是为docker的普通用户设计的,他们的系统上有很多图像。根据设计,它有大量非常常见的Debian包。这减少了从它派生的映像需要安装的包的数量,从而减少了系统上所有映像的总体大小。
node:<version>-alpine
Alpine Linux project
the
alpine
official image
. alpinelinux比大多数发行版的基本映像(约5MB)小得多,因此通常会产生更细的映像。
当需要尽可能小的最终图像尺寸时,强烈建议使用此变体。需要注意的主要问题是,它确实使用
musl libc
glibc and friends
,因此某些软件可能会遇到问题,这取决于其libc需求的深度。然而,大多数软件都没有这个问题,所以这个变种通常是一个非常安全的选择。看到了吗
this Hacker News comment thread
有关可能出现的问题的更多讨论,以及使用基于阿尔卑斯山的图像的一些赞成/反对比较。
为了最小化图像大小,额外的相关工具(如
git
或
bash
)包括在阿尔卑斯山的图像中。使用此图像作为基础,在自己的Dockerfile中添加所需的内容(请参见
alpine
image description
例如,如果您不熟悉如何安装软件包)。
node:<version>-onbuild
这个
ONBUILD
不推荐使用图像变体,不鼓励使用它们。有关详细信息,请参阅
docker-library/official-images#2076
.
而
onbuild
variant对于“起步运行”(在短时间内实现零对接)非常有用,不建议在项目中长期使用,因为它无法控制
什么时候
这个
触发火灾(另见
docker/docker#5714
docker/docker#8240
,
docker/docker#11917
Dockerfile
建造
建造
变体
Dockerfile文件
(移动
建造
将线连接到末端并卸下
Dockerfile文件
关于它的作用。这也使得随着时间的推移添加额外的需求变得更加容易(比如在执行之前的任务之前安装更多的包)-
步骤)。
node:<version>-slim
此映像不包含默认标记中包含的公共包,只包含运行所需的最小包
. 除非你工作的环境
这个
节点
映像将被部署并且您有空间限制,强烈建议使用此存储库的默认映像。