包装和容器有什么区别?

时间:2020-09-02 05:38:23

标签: docker npm kubernetes package containers

GitHub最近在其包注册表旁边发布了一个容器注册表。有什么不同?什么时候使用其中一个更好?我们都需要吗?

2 个答案:

答案 0 :(得分:2)

包通常很简单:它们实际上是一个包含内容(代码库,应用程序可执行文件等)的档案(即zip文件)和一个清单文件(json文档,xml文件等),其中用软件包名称和版本号(至少)。 即:-npm,pip和composer软件包。

容器图像也很简单,但它们更像是归档文件(即zip文件)而不是软件包。 即:-nginx,redis等

结论:-如果在任何项目中重复使用某些库,那么我们可以创建包并在项目中使用。而对于所有基于项目的依赖项,我们需要选择容器来运行它。是的,我们两个都需要。

答案 1 :(得分:0)

与一位使用Docker的朋友辩论了一段时间之后,我认为我找到了令人满意的解释:

  • 程序包用于将代码模块一起编译成一个 申请。
  • 容器用于应用程序,这些应用程序被一起编译成一个 服务器。

对于Package可以包含独立的应用程序这一事实有点困惑,并且Container经常会使用Apt之类的软件包管理器来安装这些应用程序。我觉得这是对软件包管理的一种滥用,因为我们没有容器,这是一种传统。最终,我希望大多数应用程序将以容器形式交付。