50

我们为什么需要关心容器?

 4 years ago
source link: https://www.tuicool.com/articles/yei6jay
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

原文出自Medium 

作者: Kalhara Perera

京东云开发者社区编译

i6zqua3.jpg!web

我们为什么要关心Docker?

好。第一个问题:什么是Docker?

如果你是一名开发人员,你可能遇到过以下问题:软件可以在机器上运行,但是在测试环境中却无法工作。那么,Docker在最基本的层面上解决了这个问题。

Docker什么时候开始工作?

YfQfmaU.jpg!web

Docker在软件开发生命周期(SDLC)的部署阶段发挥作用。它简化了应用程序的部署过程,解决了大量相关问题。

Docker是做什么的?

软件不仅仅是一段代码。它由前端组件、后端服务器、数据库、信封、库和依赖项组成,我们必须确保所有组件都能正常工作,并且软件也能在所有平台上运行,这包括:手机、平板电脑、电脑,以及所有不同的操作系统。如果我们画一张所有组件和平台的图,我们会看到每个组件都连接到各个平台——看起来就像一个神经网络一样!

可以用一个简单的比喻来理解这一点:想象你要搬家了,你必须带着所有的东西去一个不同的国家。你移动的东西有不同的大小和形状,有不同的要求(易碎品,“轻拿轻放”,等等)。你必须考虑运输、包装、专业劳动力、运输。但是如果你有一个容器,那么所有这些问题都会消失,你所要做的就是把你的东西完整地、正确地打包在容器里。

3ueUjmQ.jpg!web

Docker是一个通过使用容器来进行轻松部署和运行应用程序的工具。Docker允许开发人员将应用程序与所需的所有部分(如库和依赖项)打包在一起,并将它们作为一个包发送出去。Docker通过将其发送到目的地并在所有可能的平台上运行它来处理其余的工作。

开发人员需要考虑的是如何开发软件,他们只需要将其打包,而不需要考虑运行平台的需求。

怎么创建Docker容器

jYjQbae.jpg!web

Docker文件用于构建一个Docker映像,该映像还将包含所有项目代码。同一个Docker映像可以用来旋转多个容器,每个容器都对底层映像进行了修改。最后的映像可以被上传到Docker的中心,并与其他协作者共享以进行测试和部署。因此,构建Docker映像将是你最主要的挑战。Docker容器只是Docker映像的一个实例。

定义

Docker文件 :一个文本文档,包含了用户可以在命令行上调用的用来组装图像的所有命令。

Docker镜像: 一种只读模板,用于创建Docker用户构建的容器;它将存储在Docker中心或本地注册表中。

Docker容器: 独立的应用程序平台,包含了运行由一个或多个映像构建的应用程序所需的一切。

QJ7VZjV.jpg!web

什么是Docker Compose?

通常,我们使用一个容器来承载一个服务器。考虑一个使用许多web服务器的大型产品,这些服务器必须单独或在单独的虚拟机(vm)中运行。

在这种情况下,运行这么多不同的vm会使计算机过热并降低所有进程的速度。但是,我们有一个单独的容器,叫做Docker Compose,它将包含一个Docker Composer。如果我们在编写器中有两个Docker映像,它将在两个实例中运行,允许它们彼此交互并监视它们。

假设你正在使用MongoDB、Express、Angular和Node.js开发一个全堆栈应用程序。您必须使用三个包含三个容器的Docker文件。一个容器用于MongoDB作为数据库;一个容器用于服务器,它是Express和Node.js的组合;另一个容器用于Angular(前端客户端)。

fUFVrqn.jpg!web

如果你不知道完整堆栈应用程序是如何工作的,那么你首先需要了解用户所在的客户端。用户向应用程序发送请求,然后应用程序将请求发送到服务器。服务器(即后端)执行所有的功能。然后,服务器从数据库(本例中为MongoDB)获取数据,并将其发送到用户的前端。容器中的所有Docker文件都由用YAML编写的Docker撰写文件控制。在YAML文件中,你必须指定容器的位置,以及Composer与其他容器交互时所必须使用的端口号。

简单来说,Docker组合用于运行多容器应用程序。每个容器将运行一个独立的应用程序,它可以与同一主机中的每个容器通信。

Docker使用客户机-服务器架构。请参见下面的图片进行说明。

zMJFFvM.jpg!web

原文链接 https://medium.com/better-programming/why-should-you-care-about-containerizing-45383062d4df

EjiyYbv.png!web

以上信息来源于网络,由“京东云开发者社区”公众号编辑整理,

不代表京东云立场。 E7b2qub.gif

V7ZBBbQ.gif


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK