为什么要使用Docker容器化技术
什么是Docker?
Docker 是一个开源的应用容器引擎,基于Go语言开发。让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上。容器是完全使用沙箱机制,不同容器之间是相互隔离的,可以通过网络互相通信。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
一个完整的Docker由以下几个部分组成:
Docker Client客户端
Docker Daemon守护进程
Docker Image镜像
Docker Container容器
为什么要使用Docker?
首先我们来了解下应用的部署演化,主要分为以下三个时代:
物理机时代 -- 虚拟化时代 -- 容器化时代
不同时代的特点:
物理机时代:
部署非常慢
成本高
资源浪费(闲置资源无法利用)
难于扩展与迁移
虚拟化时代:
多部署(一台物理机可以创建多个虚拟机)
资源池(物理机资源可被虚拟机共享)
资源隔离(互相之间是隔离的)
容易扩展
VM需要安装操作系统
容器化时代:
容器是APP层面的隔离,虚拟化是物理层面的隔离
标准化的迁移方式
统一的参数配置
自动化部署
应用集群监控
从以上三个时代的对比看,容器化时代让我们应用的部署更加的快速和高效。
Docker的优点:
(1)快速交付和部署
使用docker,开发人员可以使用镜像快速构建一套标准的开发环境;开发完成后,测试和运维人员可以使用完全相同的环境部署代码,只要是开发测试过的代码就可以确保在生产环境无缝运行。docker可以快速创建和删除容器,实现快速迭代。
(2)高效的资源利用
运行docker容器不需要额外的虚拟化管理程序的支持,docker是内核级的虚拟化,可以实现更高的性能,同时对资源的额外需求很低。
(3)轻松的迁移和扩展
docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、服务器等,同时支持主流的操作系统发行版本,这种兼容性让用户可以在不同平台间轻松的迁移应用。
(4)简单的更新管理
使用Dockerfile生成镜像的方式,只需要小小的配置修改,就可以替代以往大量的更新工作,所有的修改都以增量的方式进行分发和更新,从而实现自动化且高效的容器管理。
(完)