如果 Docker 是一个应用程序容器(与 LxC 这样的系统容器不同),并且只用于运行一个应用程序/服务,那么我想知道完整的 Docker OS 容器对于 Ubuntu 来说有什么用呢?
有没有任何用例您更喜欢使用 Ubuntu Docker 容器,而不是 Ubuntu LxC 容器?
答案1
因为即使没有涉及完整的操作系统,Docker 镜像中的文件系统看起来也像是特定发行版的根文件系统的摘录:
- 根据“原始操作系统”,要在 Docker 文件中安装其他包,您必须运行
yum
、apt
或其他程序,如果apt
您使用 Debian 或 Ubuntu 存储库。 - 有些事情(尤其是在
/etc
)在不同的发行版中处理方式并不完全相同(例如,安全证书),因此如果您熟悉 Debian,那么您会对 Debian/Ubuntu docker 镜像比 Centos 镜像更放心。 - 还有一些不那么显眼的东西也同样重要,比如特定软件包的实际名称和版本。一些 Docker 镜像(Alpine?)甚至不包含
glib
,这是许多 Linux 应用程序的 C 运行时支持。
否则,“OS Docker 映像”只是更专业映像的起点。例如,如果您需要 Web 服务器,可以从 Debian 映像开始,使用 apt 安装 Apache 和 Tomcat,添加 WAR。要调试映像,您仍然拥有一系列实用程序。当一切稳定后,您可以删除多余的部分(通常执行两阶段 Dockerfile),最终得到一个小映像,其中包含服务器所需的内容(Apache 只是这里的一个例子,因为您可以找到 Apache 映像)。
答案2
@DanielB 和 @xenoid,如果你们中的任何一个人想发表你们的最后一条评论作为答案,我可以将其定稿。不幸的是,我只能将其中一个答案定稿,如果两个答案恰好都同样好的话。