Docker是什么?
- docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。
- docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux服务器,也可以实现虚拟化。
- 容器是完全使用沙箱机制,相互之间不会有任何接口(类iphone的app),并且容器开销极其低。
简单来说,通过docker,我们可以在不同的硬件设备上使用同样的软件环境和配置。在实际的开发场景中,开发人员、测试人员往往不共用一套环境,这导致产品开发完成在转测后出现各种环境不适配、缺少依赖的问题,给测试人员带来了巨大的工作量。而通过docker,开发人员只要定义一个docker镜像,测试人员拉取该镜像并在其中进行相应产品的测试,就可以完全解决运行项目时的环境适配难题。
如下图,开发人员从功能模块中拉取主线代码创建自己的分支,并在个人分支上开发完成后合并回主分支,然后提交时候触发流水线。对于流水线中的三个任务分别启动不同的docker。

补充概念
镜像 & 容器
镜像和容器的关系类似于面向对象编程中类和对象(实例)的关系。从镜像中其中一个容器,容器是镜像的运行实例。一个镜像可以启动多个容器。
容器 & 虚拟机
容器实质上是一个进程,它在linux本机上运行,并且容器之间共享主机内核。而虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问。区别如图。容器共享相同的主机操作系统,虚拟机则有各自的操作系统。

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

被折叠的 条评论
为什么被折叠?



