在Ubuntu的Docker容器中使用NodeJs?

4

我正在将我的Windows托管的SPA应用程序移植到Linux容器中,我对Ubuntu有一定的了解,因此我打算使用它。

Docker Hub上的NodeJs页面显示了几个Debian版本和Alpine的容器。

但是没有Ubuntu的容器。

NodeJs团队不推荐在Ubuntu上使用NodeJs吗?

还是说保持大量Linux发行版的NodeJs预配置太麻烦了,所以Node团队只停留在Debian和Alpine上?

或者还有其他原因?....


根据你的NPM包,我建议你从alpine开始,看看它能为你带来什么。我们有很多不同的包,而且它对我们来说几乎完美无缺。 - Joe
2个回答

5

对于作为服务器运行节点应用程序的基础容器而言,Ubuntu太重了。与之相比,Debian和Alpine更加轻量级。

此外,了解Ubuntu、Debian和Alpine并不需要进行很大的变化。归根结底,Ubuntu在某种程度上是建立在Debian之上的,它们都是Linux发行版,所以您应该没问题。尤其是您只需要进行一次配置步骤,将其保存为容器映像的一部分,然后就完成了。每次都会生成相同设置的容器。这就是容器的美妙之处。


当你说“太重”时,你指的是什么?由于 Docker 层,文件大小不应该是一个大问题。它在其他方面很“重”吗? - Vaccano
1
由于其大小、所需资源等原因,启动时间可能是一个重要问题,当您想切换到“轻量级”基础时,您可以在其上添加更多的东西(包括那些最小的)以保持资源和大小低,从而实现快速启动。 - MadaManu

0

Ubuntu只是一个非常沉重的基础,会向容器中添加大量可能不必要的软件包。如果你要构建生产级别的容器,通常会选择Alpine。它安装了最少量的库,减小了容器的总体大小,并且应该最接近你的应用程序运行所需的“最低限度”。我建议从这里开始。


当你说它是一个“非常沉重的基础”时,你指的是什么?由于 Docker 层,文件大小不应该是一个大问题。它在其他方面是否很“沉重”? - Vaccano
我想这真的取决于你的使用情况。如果你有多个使用ubuntu基础镜像的图像,那么你仍然会有那个ubuntu基础镜像,但它不会为每个容器运行而重复。然而,如果你在多个节点上进行生产部署,每个节点也需要该基础镜像,在一些情况下,比如我们公司Cycle,我们会将镜像压缩以简化部署,并保证容器不会遇到缓存层问题等。 - Alexander Mattoni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接