Docker原理及架构理解

Docker是一个开源的应用容器引擎,基于Go语言,实现了轻量级、可移植的容器技术。它通过镜像创建容器,解决了环境适配问题。Docker采用C/S架构,Docker Client与Docker Daemon交互,Daemon管理Engine、Job、Registry等组件,实现容器的创建、管理和镜像的存储与分发。Docker容器与虚拟机的主要区别在于容器共享主机内核,而虚拟机有独立操作系统。

Docker是什么?

  • docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。
  • docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux服务器,也可以实现虚拟化。
  • 容器是完全使用沙箱机制,相互之间不会有任何接口(类iphone的app),并且容器开销极其低。

简单来说,通过docker,我们可以在不同的硬件设备上使用同样的软件环境和配置。在实际的开发场景中,开发人员、测试人员往往不共用一套环境,这导致产品开发完成在转测后出现各种环境不适配、缺少依赖的问题,给测试人员带来了巨大的工作量。而通过docker,开发人员只要定义一个docker镜像,测试人员拉取该镜像并在其中进行相应产品的测试,就可以完全解决运行项目时的环境适配难题。

如下图,开发人员从功能模块中拉取主线代码创建自己的分支,并在个人分支上开发完成后合并回主分支,然后提交时候触发流水线。对于流水线中的三个任务分别启动不同的docker。

开发测试流水线示意图

补充概念

镜像 & 容器

镜像和容器的关系类似于面向对象编程中类和对象(实例)的关系。从镜像中其中一个容器,容器是镜像的运行实例。一个镜像可以启动多个容器。

容器 & 虚拟机

容器实质上是一个进程,它在linux本机上运行,并且容器之间共享主机内核。而虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问。区别如图。容器共享相同的主机操作系统,虚拟机则有各自的操作系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值