当前位置: 首页 > 知识库问答 >
问题:

云代工和Docker有什么区别?

白彦
2023-03-14
    null

共有1个答案

燕寒
2023-03-14

Docker是一种用于创建和运行Linux“容器”的技术。从某种意义上说,您可以将它们视为轻量级VM。SpringBoot应用程序的docker容器将由一个docker映像和docker容器元数据组成,该文件系统包含运行应用程序所需的所有内容(JVM、源代码等)和docker容器元数据,该元数据告诉docker守护进程如何在映像中运行应用程序(例如,设置什么环境变量、公开什么端口、运行什么命令等)。docker守护进程将使用cgroups和内核名称空间等Linux特性来独立于主机上运行的其他进程运行容器。Docker有点低级,因为您需要指定进入图像的所有内容,它运行任意的内容,即您将任何内容放入图像并告诉它运行。您得到的docker容器是非常可移植的,因此您可以在本地构建、测试和运行docker容器进行开发,然后将该容器发送到一个生产主机,该主机上也运行有一个docker守护进程,并且非常确信您得到的是完全相同的东西。

Cloud Foundry在更高的抽象层工作,应用程序是第一流的概念。Cloud Foundry使用类似于docker的容器化技术来构建可移植的映像,然后运行它们,但这是一个实现细节,您不需要指定所有细节。在Cloud Foundry的更新版本中,docker图像也将得到支持,因此如果您愿意,您可以指定详细信息,但它也有一个“构建包”工作流,当您推动应用程序时,它将自动检测Java应用程序,并在构建图像时知道包含Java运行时所需的所有内容。

在云铸造中,由于应用程序和应用程序管理是一流的概念,并且由于它在更高的级别上运行,所以您可以免费获得各种东西。例如,您可以轻松地水平缩放应用程序(添加实例),例如CF缩放my_app-i5或垂直缩放CF缩放my_app-m2g(为每个实例设置分配的内存)。您将获得流式应用程序日志:cf logsmy_app。Cloud Foundry为您提供了大量免费的容错功能,因此如果您的一个应用程序实例崩溃,或者运行应用程序容器的进程本身崩溃(类似于docker守护进程),或者运行容器运行进程的主机VM死亡,或者该VM所在的硬件集群死亡,Cloud Foundry将自动恢复实例。

docker守护进程是一个可以在任何Linux机器上运行的进程。因此,如果您正在做一些小而简单的事情,并且您需要自己完成大部分设置,那么使用Docker在本地和开发中启动和运行会更容易。使用docker还可以更容易地访问和共享您创建的docker映像,因此一旦创建了映像,就可以将其放在docker存储库中,然后可以在任何其他docker守护进程上运行它。对于Cloud Foundry,构建的映像通常是一个实现细节,您实际上并没有访问它的权限,因此,例如,您无法提取映像并在另一个Cloud Foundry安装上运行它。

有许多项目旨在使云铸造更容易访问和设置,同时仍然给您提供PaaS的许多好处。其中一些项目还旨在让您将使用docker和docker的好处结合起来,同时也从Cloud Foundry获得大量PaaS好处。

参见Bosh-Lite上的格子和云铸造。

也有许多非CF项目打算围绕核心docker技术建立一个平台层,包括自己运行和托管服务。

参见谷歌的Kubernetes项目和亚马逊容器服务

全面披露:我是一名软件工程师,在Pivotal从事云铸造工作

 类似资料:
  • 问题内容: 并且似乎正在与同一个dockerFile进行交互,这两个工具之间有什么区别? 问题答案: 在一个码头工人的发动机管理单个容器时,CLI使用。这是访问docker daemon api的客户端命令行。 该CLI可以用于管理多容器应用程序。它还会将您在cli 上输入的许多选项移到文件中,以方便重用。它在与所使用的同一docker api上充当前端“脚本” ,因此您可以使用命令和许多shel

  • 问题内容: 有人可以帮助我了解 docker run 和 docker container run 之间的区别吗? 当我执行 docker run –help 和 docker container 从docker cmd行 运行–help时 。我看到以下 在新容器中运行命令 。 他们在内部运行容器的方式有什么不同,还是两者都在做相同的工作? 根据https://forums.docker.com/

  • 问题内容: 和之间有什么区别? 假设在dockerized项目路径中有一个文件: 和 问题答案: 可以被认为是DockerCLI的包装器(实际上,它是python中的另一种实现,如[注释中所述),以节省时间并避免500个字符长的行(并同时启动多个容器)。它使用一个名为的文件来检索参数。 您可以在此处找到docker- compose文件格式的参考。 因此,基本上,您将阅读,查找包含该语句的所有服务

  • 问题内容: 在深入研究Docker,Google Cloud和Kubernetes的同时,还没有清楚地了解这三个产品,在我看来,这些产品是重叠的,但它们并不兼容。 例如,需要重写文件,以便可以将应用程序部署到Kubernetes。 有人可以对Docker,Docker Compose,Docker Cloud和Kubernetes重叠之处以及其中一个相互依赖的地方进行概括的粗略描述吗? 问题答案:

  • 问题内容: 据我对Docker的了解,它是用于虚拟环境的工具。用他们的术语来说,它叫做“容器化”。这或多或少是Python的virtualenv所做的。但是,您可以 在 Docker中使用virtualenv 。那么,它是虚拟环境内部的虚拟环境吗?我对这甚至如何工作感到困惑,所以有人可以澄清一下吗? 问题答案: virtualenv仅封装Python依赖项。Docker容器封装了 整个OS 。 借

  • 在深入研究Docker、Google Cloud和Kubernetes的同时,我还没有清楚地了解这三个产品,在我看来,这些产品是重叠的,但它们并不兼容。 例如,需要重新编写文件,以便将应用程序部署到Kubernetes。 有人能提供一个高层次的粗略描述Docker、Docker Compose、Docker Cloud和Kubernetes在哪些地方重叠,哪些地方依赖于另一个吗?