【问题标题】:What's the point of running an OS (Ubuntu) in Docker?在 Docker 中运行操作系统(Ubuntu)有什么意义?
【发布时间】:2018-03-05 11:00:39
【问题描述】:

我很难理解这个概念。我对 Docker 的工作原理和好处略知一二,虽然我了解在容器中运行 Web 服务器、数据库和开发环境,但我不明白在 Docker 中运行像 Ubuntu 这样的操作系统有什么意义。

有人能解释一下您为什么要这样做,以及容器中的整个操作系统的好处吗?

【问题讨论】:

  • 为什么要否决这个问题?对于试图掌握容器的人来说,这是一个基本但完全有效的问题。

标签: docker virtualization lxc


【解决方案1】:

操作系统本质上是运行您的应用所需的运行时环境。如果您的应用程序被编译为在 Linux 上运行,它依赖于必须存在于执行环境中的 Linux 库(libc、glib 等),无论其类型如何。 Docker 也不例外。

因此,Ubuntu 应用程序需要 Ubuntu 映像才能正确运行。

请注意,Docker 容器不包含也不运行整个操作系统,而仅包含允许您的应用运行的最小库集。特别是它从不包含或执行内核,因为它在主机内核下运行。

【讨论】:

  • 非常感谢。所以如果我想运行一个 ubuntu 应用程序,我需要它在同一个 Ubuntu 容器中运行吗?而且我会假设带有 nginx 的图像已经具有所需的库?
  • 每个 Ubuntu 版本都有 Ubuntu 映像。是的,您应该坚持使用您用于构建应用程序的版本。 nginx 容器基于 debian Stretch 或 Alpine Linux(您可以选择)。如果您的应用程序没有特定于 Ubuntu 的功能(通常没有),它也应该在 Debian 上运行良好。
【解决方案2】:

Docker 没有自己的操作系统,它安装在机器上,这允许它共享主机操作系统资源。将只有一个操作系统,所有容器都将使用该操作系统。 大多数应用程序在没有操作系统的情况下毫无意义,因为 IO、硬件调用等都需要它。 每个 docker 容器可能安装了不同的包(java、python、jboss 等)、应用程序。

【讨论】:

    猜你喜欢
    • 2010-09-05
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2018-06-12
    相关资源
    最近更新 更多