【问题标题】:Undrestanding docker: what is the dockerhub Ubuntu image?了解 docker:什么是 dockerhub Ubuntu 镜像?
【发布时间】:2021-04-08 09:06:20
【问题描述】:

我为 Linux 配置了 Windows 子系统,在 Win 10 上安装了 Microsoft 打包的 Ubuntu,以便使用 Linux 来使用 Docker。据我了解,与 VMWare 不同,Docker 不需要客户操作系统——这是主要优势之一。

我浏览了dockerhub,找到了一个官方的Ubuntu image。它有什么用,因为不需要来宾操作系统?

【问题讨论】:

  • 那是让你在上面构建自己的图像,例如在您的Dockerfile 中使用FROM ubuntu:<version>
  • 与在来宾操作系统上运行的映像相反,容器映像实际上将作为单个进程运行。这将意味着更小的“足迹”

标签: linux docker ubuntu


【解决方案1】:

共享操作系统在这里可能是错误的术语,因为许多将 Linux 发行版和文件系统作为操作系统的一部分。容器使用共享的 Linux 内核运行,但在与主机和彼此隔离的命名空间中。这些命名空间之一是挂载命名空间,包括您的根文件系统。因此,当您进入容器时,/bin 和其他目录中的文件是从映像组装而成的(加上卷挂载和容器内所做的更改)。

Ubuntu docker 镜像是一个初始文件系统,其中包含一个最小的 Ubuntu 环境,您可以使用创建其他镜像来运行您的容器。如果你要在没有它的情况下启动一个容器,你将没有任何东西,没有/bin/sh,没有apt,没有库,并且必须首先创建每个二进制文件和所需的库才能在容器内运行命令。

【讨论】:

  • 我明白了。想象一下,你需要一个像 nginx 这样的 Web 服务器,你想在一个容器中提供它。您是否需要将其安装到派生自 Ubuntu 的映像中,或者您可以扩展临时 Docker 映像吗?
  • @sugarman 当您拉取图像时,您将获得运行它所需的一切。了解一些细节,但该图像包含一组 tars/layers,每个都由该内容的 sha256 摘要引用,当您派生新图像时,您将从该引用列表开始。 Docker 和注册表服务器处理所有重复数据删除,因此您只保留该 tar/层的一个实例,如果您还没有它,则拉取它。
  • @sugarman 如果你查看 nginx 镜像,你会发现官方镜像基于 debian:github.com/nginxinc/docker-nginx/blob/…
  • 我是 Docker 新手。我认为您可以将各种服务器分别安装在单独的映像/容器中,并允许它们“插入”您的主机资源,为它们提供所需的环境。现在,我知道容器和主机是隔离的。因此,您需要为每个服务器容器提供一个操作系统环境基础。假设 Ubuntu,将为每个服务器容器复制 - “基础”被复制。
猜你喜欢
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 2020-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-20
相关资源
最近更新 更多