Docker的简介
传统部署方式容易造成的问题
1、环境问题
解决了依赖环境不同导致的问题产生,比如开发测试环境没有问题,生产环境出现问题
比如操作系统不一致
2、依赖问题
解决了各种依赖冲突导致的问题(比如java需要jdk环境,python需要python的环境)
为了解决依赖环境问题,它会将函数库以及依赖和应用打包到一起放进容器避免互相干扰。
统一调用操作系统的内核
3、操作系统问题
解决了各个不同操作之间的差异
旧版容器化调用流程
1、容器之间相互隔离
2、将依赖环境打包到容器
3、容器中包含了简化操作系统
4、直接跨过操作系统调用内核
容器化的优势
性能更高效:
相对于虚拟机的对于操作系统和硬件的完全虚拟化,容器化技术不需要完全的虚拟化,资源利用率更高
启动时间快:
传统虚拟机因为比较大启动需要几分钟而容器化只需要秒级甚至毫秒级启动
运行环境一致:
因为容器化将应用和依赖环境打包到了一起,可以在任何环境下进行运行,并且运行的效果是一致的
持续部署:
使用容器化技术来制作的镜像可以利用仓库来进行分发镜像,并且利用环境一致性可以更好的完成持续部署
轻松迁移:
因为容器化保证了服务间的环境的一致可以做到轻松的将容器迁移到不同的环境,公有云,私有云等环境
容器化的应用场景
1、微服务:
容器小巧轻便,非常适合微服务体系结构,在微体系结构中,应用程序可以由许多松散耦合且可独立部署的较小服务构成。
2、DevOps
微服务作为架构和 容 器 作 为 平 台的结合,是许多团队将 Devops视为构建,交付和运行软件的方式的共同基础
3、混合多云
由于容器可以在笔记本电脑,本地和云环境中的任何地方连续运行因此它们是混合云和多云方案的理想基础架构,在这种情况下,组织发现自己跨多个公共云运行与自己的数据中心结合
常见的容器化实现
docker 第一家实现容器化技术的厂商
containerd 属于云原生基金会,它本身是从docker中拆分出来的
podman 不需要守护进程
docker是什么
Docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目
LXC是什么:Linux Container是基于Linux内核一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源
Linux内核提供了一系列的虚拟化技术
LXC的缺点:
无法跨平台
受到LXC的限制,因LXC是基于linux内核的(linux版本更新可能会Linux Container的API进行变更)
为了解决无法跨平台的问题:
Docker 公司开发了名为 Libcontainer 的自研工具,用于替代 LXC,现在叫做RunC
docker技术发展总结:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?