docker概念

Docker核心概念

为什么使用docker

传统服务器部署存在以下问题

​ 1、上线流程繁琐

​ 开发->测试->申请资源->审批->部署->测试等环节

​ 2、资源利用率低

​ 普遍服务器利用率低造成过多浪费,导致成本过高

​ 3、扩容/缩容不及时

​ 业务高峰期扩容流程繁琐,上线不及时

​ 已知业务增长——提前申请

​ 未知业务增长——业务机增加承载量(约30%左右)

​ 4、服务器环境臃肿

​ 服务器越来越臃肿,对维护、迁移带来困难(为提高服务器利用率,多个项目在同一台服务器中)

​ 5、环境不一致性

​ 扩容的机器与现有机器容易存在差异化

Docker是什么

使用最广泛的开源容器引起

一种操作系统级的虚拟化技术

依赖于Linux内核特性:Namespace(资源隔离)和Cgroups(资源限制)

一个简单的应用程序打包工具

Docker设计目标

提供简单的应用程序打包工具

开发人员和运维人员的职责逻辑分离(节省运维人员成本,持续发布有问题可以更快的解决)

​ 开发人员职责:

​ 开发项目

​ 打包项目环境+代码成镜像

​ 部署到容器平台

​ 运维人员职责:怎么高效的去管理容器,

多环境保持一致性

Docker基本组成

由docker客户端、守护进程、镜像仓库组成

容器与虚拟机之间的区别

图析:

VM(虚拟机) Container(容器)
Computer Hardware(计算机硬件) Computer Hardware(计算机硬件)
Host OS(主机系统/宿主机) Host OS(主机系统/宿主机)
Hypervisor(运行物理机与操作系统之间的软件层-虚拟化核心,将虚拟出的虚拟机隔离) Docker Engine(Docker引擎)
Guest OS(创建的虚拟机) APP(使用Docker引擎运行在主机系统——线程隔离)
APP(虚拟机上运行的虚拟机,系统级隔离)

差异:

Contaier(容器) VM(虚拟机)
启动速度 秒级 分钟级
运行性能 接近原生(将进程封装——逻辑隔离) 分钟级
磁盘占用 MB GB
数量 成百上千 一般几十台
隔离性 进程级 系统级(更彻底)
操作系统 主要支持linux 几乎所有
封装程度 只打包项目代码和依赖关系,共享主机内核 完整的操作系统

容器解决的问题:

1.容器提供一个基本独立的环境,实现容器隔离,资源限制

2.主要解决应用层面问题,应用快速部署、高效管理

虚拟机:

1.提升服务器资源利用率

2.提供一个完全隔离的环境

Docker应用场景

应用程序打包处理和发布

应用程序隔离

持续集成

部署微服务(微服务升级不会影响整体系统)

快速搭建测试环境

提供PaaS产品(平台即服务)

posted @   摸鱼划水  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示