虚拟化容器技术Docker(一):Docker简介

虚拟化容器技术Docker(一):Docker简介


闲聊

Docker技术现今已使用的非常普遍,Docker是一种虚拟化技术,类似虚拟机,但跟虚拟机相比有太多的优势。Docker技术的优势主要体现在运维部署能力上,完全KO传统的部署方式,最近几年微服务的流行,更是让开发者爱上了Docker,微服务 + Spring Cloud + Docker 已是主流开发模式。


为什么会出现Docker?Docker解决的主要诉求是什么?

一款产品从开发到上线,从操作系统,到运行环境,再到运行配置,这期间有种种问题需要我们开发+运维进行协作处理。尤其是面对版本更迭、环境兼容等问题,常常需要运维与开发人员进行更深入的沟通,这在某种程度上无疑是加重了沟通成本。

复杂的环境配置,冗余的沟通成本,因此让过去很多人这样想到,能否从根本上解决这类问题,让项目带着环境一起安装到服务器上呢?换言之,在部署项目时,将项目自身运行的环境一起打包发布到服务器上运行。


什么是Docker

Docker是一种虚拟化技术,应用容器平台。开发者只需要将自己在本机开发测试通过的代码及代码运行的环境一起打包,然后就可以交给运维,运维利用docker去管理,无论再运行多少份你的代码,其预期效果都是一样的,不再出现“在我的电脑上好好的,怎么到你那就不行了”这样会引发打架的问题。docker与虚拟机类似,但有很大的不同,我们初步理解docker可将它类比为虚拟机。

但是,与虚拟机不同的是它模拟的不是一个完整的操作系统,传统虚拟机是虚拟出一套硬件后,在其上运行的一个完整的操作系统,再在该系统上运行所需的进程;而容器内的应用进程直接运行于宿主的内核,容器本身是没有自己的内核的,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。除此之外,每个容器之间互相隔离,每个容器都有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。


Docker三要素

镜像Image

镜像文件就是一个只读模板,用于创建容器对象,一个镜像可以创建多个容器对象

镜像可以被制作,例如:我们自己的项目要用Docker部署,就需要先将项目代码连带环境配置打包成镜像文件发布到Docker仓库。通常我们常用的镜像可以直接从其他仓库拉取,比如:MySql、Redis、Tomcat的镜像,通常这些镜像都是由官方或者其他人制作并发布的。

容器Container

正如上文所说,容器是一个简易的Linux环境(包括用户权限、进程空间、用户空间和网络空间等)和运行其中的应用程序。

仓库Repository

仓库(Repository)是集中存放镜像的场所。

仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库服务器上往往存放着多个仓库,每个仓库又包含着多个镜像,每个镜像又有不同的标签(tag)。

仓库分为公开仓库和私有仓库。最大的公开仓库是Docker Hub(http://hub.docker.com/),存放了数量庞大的镜像文件供用户下载。国内的大型公开仓库包括阿里云、网易云等。

扫描二维码关注公众号,回复: 10083960 查看本文章

猜你喜欢

转载自www.cnblogs.com/huangwei1061047046/p/12551178.html