0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Docker和容器化的兴起

星星科技指导员 来源:volansys 作者:Chintal Shah 2022-12-06 14:22 次阅读

为什么需要码头工人?例如,在本地系统上用 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 下运行

审核编辑:郭婷

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

    关注

    37

    文章

    3243

    浏览量

    57600
  • 虚拟机
    +关注

    关注

    1

    文章

    908

    浏览量

    28091
  • python
    +关注

    关注

    56

    文章

    4782

    浏览量

    84453
收藏 人收藏

    评论

    相关推荐

    如何在树莓派上安装Docker容器

    Pi官网 下载最新版本的Raspberry Pi OS。 使用SD卡写入工具将镜像写入SD卡:可以使用 Etcher 等工具。 将SD卡插入树莓派并启动。 2. 更新系统 在安装Docker之前
    的头像 发表于 11-11 11:38 272次阅读

    ARM平台实现Docker容器技术

    及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,亦可实现虚拟容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一样管理基础结构
    发表于 07-25 14:36

    ARM平台实现Docker容器技术

    及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,亦可实现虚拟容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一样管理基础结构
    发表于 07-17 11:05

    Jtti:Docker会替代调虚机吗

    Docker是计算虚拟的一种方式,和使用虚拟机进行虚拟是类似的。由于近几年Docker技术的流行和发展。所以单独介绍一下Docker。首
    的头像 发表于 07-12 14:38 277次阅读
    Jtti:<b class='flag-5'>Docker</b>会替代调虚机吗

    关于Docker 的清理命令集锦

    这篇文章主要介绍了Docker 清理命令集锦,需要的朋友可以参考下 复制代码代码如下: docker kill $(docker ps -a -q)  删除所有已经停止的容器 复制代码
    的头像 发表于 06-13 15:56 322次阅读

    容器怎么完成和容器引擎的映射

    Javascript与Java应用程序绑定在一起,从而实现应用程序的自动测试。 Docker 示例 docker run -d -p 宿主机端口:容器端口 镜像名 例如,要将
    的头像 发表于 06-06 15:18 327次阅读

    适合大学生的鸿蒙开发板-Purple Pi OH之安装Docker

    个开放源代码的应用容器引擎,允许开发者打包他们的应用及依赖包到一个可移植的容器中,这个容器可以在任何支持Docker的Linux机器上运行。这里我们适配了purp
    的头像 发表于 05-10 08:32 543次阅读
    适合大学生的鸿蒙开发板-Purple Pi OH之安装<b class='flag-5'>Docker</b>

    基于全志T113-i的Docker容器实现方案

    通过使用Docker,开发人员可以更容易地构建、交付和运行应用程序,同时确保应用程序的一致性及可移植性。它也使得应用程序的部署更加灵活、高效,因为它可以快速地启动、停止和扩展容器,而不会影响其他容器或主机系统。
    发表于 04-19 09:45 817次阅读
    基于全志T113-i的<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>实现方案

    Docker容器技术的安装和使用

    通过Docker,开发人员可以更容易地构建、交付和运行应用程序,同时确保应用程序的一致性和可移植性。它也使得应用程序的部署更加灵活和高效,因为它可以快速地启动、停止和扩展容器,而不会影响其他容器或主机系统。
    发表于 04-16 11:24 289次阅读
    <b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技术的安装和使用

    Docker容器实现开机自动启动策略

    如果你的容器依赖于其他服务(例如数据库或其他容器),你需要确保这些服务在你的容器启动之前就已经可用。这可以通过编排工具如Docker Compose来管理,或者通过编写自定义的启动脚本
    的头像 发表于 03-11 10:33 2729次阅读

    ARM平台实现Docker容器技术

    ,亦可实现虚拟容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一样管理基础结构。通过利用Docker的快速发布、测试和部署代码的方法,可显著减少产
    的头像 发表于 03-07 13:48 762次阅读
    ARM平台实现<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技术

    TLT507-Docker容器部署方法说明

    TLT507-Docker容器部署方法说明
    的头像 发表于 01-26 09:49 435次阅读
    TLT507-<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署方法说明

    RK3568-Docker容器部署方法说明

    RK3568-Docker容器部署方法说明
    的头像 发表于 01-22 10:12 1290次阅读
    RK3568-<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署方法说明

    redis容器部署并用编程演示sb整合

    Redis 是一个开源的高性能的内存数据库,常用于缓存、会话管理和消息队列的存储。在容器的架构中,使用容器部署 Redis 可以减轻运维负担,提高可用性和弹性。本文将介绍如何使用容器
    的头像 发表于 12-05 10:08 386次阅读

    Windows Docker部署Redis的流程

    由于 Docker 部署 Redis 后,Redis 容器中默认是没有 redis.conf 配置文件的,需要自己手动挂在进去。
    的头像 发表于 11-27 10:02 858次阅读
    Windows <b class='flag-5'>Docker</b>部署Redis的流程