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 下运行


5G能否推动室内定位行业发展?
将化学样品转换为图像,我们可以利用图像分析算法进行样品鉴定
未来人工智能的应用场景和发展趋势
国内访问微软Github报证书错误 或遭到中间人攻击
拥抱数智化发展,共促智慧用电,德力西电气亮相2023年新型配用电系统大会
Docker和容器化的兴起
电池全新的充电模式--自然平衡充电法介绍
大众将为自动驾驶汽车设计自己的高性能芯片
5G商用化进度不断提前 5G手机可能提前到来
G 类音频放大器延长电池使用时间设计
看整车厂如何实现信号电压幅值的一致性
联发科技推出NeuroPilot AI平台 主打跨平台终端人工智能
小米 11 官宣采用高端屏幕,雷军:巨资定制,可能是全行业最贵的屏幕
使用高压LED的有哪些特点?
浅谈笔记本屏幕的色域、色准、色深参数
分裂变压器的基本要求_分裂变压器的作用
软通动力与北京人力战略签约 共筑数智人资服务新模式
“一亿”是“一千万”的十倍吗?显然不是
特斯拉有望成为其他电动汽车制造商的电池主要供应商
ARM: 将IP授权进行到底