Docker和容器化的兴起

描述

  为什么需要码头工人?例如,在本地系统上用 Python 编写的代码可能无法在其他系统或环境中运行。这是由于您使用的库的唯一版本。为了克服这个问题,码头工人来救援。

  Docker 是一个用于部署应用程序的平台即服务产品。它为用户提供操作系统级别的虚拟化,以将应用程序与其他环境分开,并以称为容器的软件包形式提供软件。容器彼此分开。它包含自己的依赖项。

  要详细了解 docker,了解虚拟机非常重要。

  什么是虚拟机?

  虚拟机 (VM) 是模拟物理服务器的服务器。VM 模拟在系统物理硬件上安装应用程序的相同环境或配置。根据您的使用案例,您可以使用系统虚拟机或处理虚拟机。VM 允许您在环境中单独执行计算机应用程序或程序。

  码头工人和虚拟机之间的区别

  与任何 VM 相比,Docker 容器将资源的抽象从硬件级别向上移动到操作系统级别。这将允许使用 Docker 容器的各种好处,如应用程序可移植性、依赖关系管理、独立的微服务、轻松监控应用程序等。

  换句话说,VM 是整个硬件服务器的抽象,而容器是操作系统内核的抽象。这种完全不同的虚拟化方法会产生更快、更轻量级的实例。

  什么是容器?

  Docker 容器是可执行包的标准化单元,可以轻松创建以部署应用程序或为应用程序创建新环境。它可以是操作系统容器,如Ubuntu,CentOS等,也可以是面向应用程序的容器,如CakePHP容器,Python-Flask容器等。

  使用 Docker 容器,用户可以设置特定应用程序的任意多个容器,也可以在一个容器中部署多个应用程序。Docker 用户可以根据需要创建任意数量的容器副本,以实现高可用性或纵向扩展过程

  与 VM 相比,可以在相同的硬件上运行更多容器,因为容器是轻量级的,并且使用相同的操作系统内核。

  什么是 Docker Image?

  Docker 镜像是一个模板,有助于创建 Docker 容器,或者可以说是容器的镜像。它们是包含用于创建 Docker 容器的指令集的构建基块。Docker 镜像是通过编写 Docker 文件创建的,其中包含创建 Docker 镜像的命令,并且可以通过执行 Docker 构建命令来创建它。可以通过运行 run 命令来创建 docker 容器。

  码头工人架构

  了解 Docker 架构有助于轻松理解容器化应用程序架构。Docker使用服务器-客户端架构。架构中主要有两个组件:Docker 守护进程和 Docker 客户端。Docker 客户端使用 REST API 与 docker 守护程序通信。用户可以在同一台服务器上设置 Docker 守护程序和 Docker 客户端,也可以通过部署在不同的服务器上来将其分开。Docker 守护程序管理所有正在运行的容器以及构建新容器的任务。

  码头工人守护进程:-Docker 守护程序管理 Docker 架构中的所有组件。它管理附加到容器的 Docker 映像、容器和卷。它还可以与其他 Docker 守护进程通信

  码头工人客户端:-用户与 Docker 客户端交互。当用户运行任何 docker 命令时,Docker 客户端会将该命令发送到 Docker 守护程序。Docker 客户端和守护程序可以部署在同一系统上,或者用户可以在远程系统上部署 Docker 守护进程

  码头工人注册表:-Docker 映像存储在 Docker 注册表中。Docker Hub 是每个人都可以访问的公共 Docker 注册表。换句话说,Docker 注册表是提供公共和私有注册表的服务,您可以从中存储和获取映像。用户可以登录到 Docker Hub,并可以创建其专用或公共注册表。用户可以从 Docker Hub 拉取 Docker 镜像并创建他们的容器

  Docker及其应用程序的重要性

  Docker 的目标是使用容器使软件开发、应用程序部署和业务敏捷性变得简单、快速和可靠。使用 Docker,我们可以将我们的应用程序与所有依赖项捆绑在一起,并将它们部署到任何硬件上,而不管任何不同的操作系统。将容器化应用程序迁移到不同的环境非常容易,因为它没有外部依赖性架构。以下是 Docker 的一些应用。

  在云环境中部署生产级应用程序

  等效硬件上的自动缩放支持应用程序的利用率

  简单的代码流水线管理

  使用相同的生产复制环境轻松进行代码测试

  使用 Docker Hub 轻松获取 Docker 映像

  与完全不同的DevOps工具轻松集成,如bitbucket管道,git操作,AWS codebuild,AWS codedeploy,Jenkins等。

  什么是 Docker Orchestration?

  Docker 编排可自动执行容器的准备、管理、扩展和网络的各个方面。无论您在哪里使用码头工人集装箱,它都将用于任何环境。它将帮助您在完全不同的环境中部署类似的应用程序或配置,而无需对其进行更改和管理容器及其动态环境的生命周期。这些区域将手动管理的任务结合在一起。以下是可以使用 Docker 编排自动化的内容。

  容器的预配、部署和删除

  如果主机存在内存或 CPU 利用率问题,则容器从一个主机移动到另一个主机

  容器之间的负载平衡

  高可用性和可扩展性

  通过不同矩阵对容器、主机和应用程序进行运行状况监控

  在容器之间高效分配资源

  容器的冗余和可用性

  Docker Swarm 是一个 Docker 编排工具。它可以在 Docker 容器中打包和运行应用程序,从公共或私有存储库中查找现有容器映像,并在任何环境中的任何设备上部署容器。

  Docker 的编排工具包括:

  码头工人机器 :- 在虚拟机上安装 Docker 引擎

  Docker Swarm:- 在单个主机下创建多个 Docker 容器的集群

  Docker Compose:- 部署多容器应用程序并管理容器之间的连接

  容器化编排工具的优势

  提高可移植性:-通过几个命令,用户可以在其他硬件上复制其整个应用程序。易于扩展、销毁和管理依赖项

  简单快速的部署:-可以创建新的应用程序容器以应对不断增长的流量

  提高生产力:-简化部署和流程管理,减少依赖性

  提高安全性:-应用程序与其他应用程序隔离,因此消除了其他应用程序的干扰

  VOLANSYS 如何提供帮助

  微服务被设计为容器化应用程序,即可以在容器化环境中运行的应用程序

  我们为每个平台定义一个 docker 基础映像,例如 JAVA。如果发现任何漏洞,则易于维护、扩展和更新

  一旦开发人员提交代码,它就会触发 Jenkins 上的 CI 运行。

  在上图的构建部分,Jenkins 负责构建应用程序的可执行文件以及使用它的 docker 镜像。Jenkins 没有任何静态从属,也就是说我们在 Kubernetes 集群上使用 docker 容器来运行 Jenkins 工作负载

  将 docker 映像推送到工件工厂后,如果目标环境为 dev,它将触发自动部署。对于其他环境,我们需要触发该过程。Docker 镜像在 Kubernetes pod 下运行

  审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分