gpt4 book ai didi

docker - 为什么 Ubuntu docker 镜像不是虚拟机

转载 作者:行者123 更新时间:2023-12-02 09:47:39 25 4
gpt4 key购买 nike

我明白了虚拟机和容器之间的巨大区别。但这让我对 Ubuntu 容器如何存在感到困惑。这对我来说感觉很矛盾,因为 Ubuntu 是一个操作系统。

https://hub.docker.com/_/ubuntu

这不是一个完整的 guest 操作系统吗?那么是什么让它成为虚拟机上的容器呢?或者容器和虚拟机之间的界限是否模糊?

我尝试过谷歌搜索,但我发现的唯一结果是经典的虚拟机与容器答案,这并不是我真正要问的,我不认为。

编辑 - 我已更新以尝试进一步澄清我的问题。

最佳答案

Docker 是一种在隔离的轻量级容器中运行应用程序的新方法。尽管它们是孤立的,但它们可以与其他组件集成。

效率并不是唯一的 yield 。当您打包应用程序以在 Docker 中运行时,您就获得了可移植性。您可以在笔记本电脑上的 Docker 容器中运行您的应用程序,它在数据中心的服务器上以及任何云中的虚拟机 (VM) 上的行为方式完全相同。

另一个重要的插入因素是安全性。容器在应用程序之间添加了安全隔离,因此您可以确信,如果一个应用程序遭到破坏,攻击者将无法继续破坏同一主机上的其他应用程序。

当您将应用程序打包为 Docker 镜像时,它们都具有相同的形状 - 您可以用相同的方式部署、管理、保护和升级它们。

回答您的问题:

  • 每个 Docker 容器都运行自己的轻量级虚拟机,因此常规虚拟机之间的界限很模糊,但事实上 Docker 容器并不像常规虚拟机那样适用于 GUI 应用程序。

  • 你假设错了。您需要在 Dockerfile 中包含操作系统,然后再包含应用程序代码。但是,如果您只想运行一个简单的控制台应用程序,则根据您的应用程序,Docker Hub 上存在不同大小的操作系统镜像,例如 Windows Nanoserver。那么您就不需要具有完整操作系统的虚拟机。您可以做的另一件事是在 dockerfile 中运行分阶段构建,该文件将编译您的应用程序并仅在镜像中包含运行时环境,从而有效地减小其大小。

  • Docker 主要是为了对新的和遗留的应用程序进行 docker 化,这意味着将它们拆分到逻辑上独立的容器中。当应用程序进行 docker 化时,它会获得安全性、依赖项分离、零停机维护、持续集成管道、可移植性、效率等优势。您无法使用常规虚拟机对应用程序进行容器化。 Docker 容器和常规虚拟机的用途和构建是不同的。

如果您正在使用 Windows 容器,我可以推荐以下书籍,以更好地概述 docker 的用途: https://www.packtpub.com/virtualization-and-cloud/docker-windows

如果没有,那么 packt 会提供有关 Linux 上 docker 的其他书籍。

我希望这能回答您的问题:)

关于docker - 为什么 Ubuntu docker 镜像不是虚拟机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53972099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com