认识docker

1:什么是docker?
前身是DotCloud,因为发展问题,最后开源并命名为Docker。其核心就是使用了Linux中的LXC(linux如今已经自带了),LXC是Linux Container容器中的一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。相当于c++中的namespace,把操作系统管理的资源划分到孤立的组中


2:为什么会有docker?解决了什么问题?
项目部署麻烦,操作系统差异引起问题,docker的创建就是为了高效地构建一个应用,最主要的是给运维提供了方便,比如淘宝,双十一那天肯定要增加服务器的,那增加服务器需要在上面部署环境,上传项目,可能遇到种种麻烦,docker就可以轻松解决这种问题


3:docker的实现原理
首先,官网上面写的build,ship,run其实可以这样理解,build可以自己构建服务,也可以使用别人提供的服务,这种服务就是镜像,ship运输其实就是把别人仓库中的服务运送到我们的主机上,run就是运行,把别人的仓库运送到我们主机上,那我们主机就存在了这个服务,从而就可以使用了


4:底层原理
linux中的良好文件系统,可以让我们读到同一层的所有文件,docker把一个镜像分为了5层,从下到上,分别是操作系统内核引导,上层为操作系统,在上层为tomcat,jdk这种服务软件,在上面一层为我们web应用,最上面一层就是容器,只有容器是可写的,容器的本质就是一个进程,这个文件系统为了可写就把要写的文件拷贝到本层,然后使用的时候先去上层找,找到的话就可以修改,不行的话就去下层找,仓库,就是我们要用服务的时候,先去仓库中找,docker有自己的仓库,如果我们不写的话他会自动去改仓库找,当然我们可以使用163的仓库,也可以使用我们自己的仓库,然后也可以自己构建仓库,添加服务。镜像是只读的,容器是可写的,要把镜像放置到容器中,我们可以认为容器就是一个linux中的一个文件系统


5:创建自己的镜像

首先编写Dockerfile,dockerfile中可以指定我们使用的上层服务,比如tomcat,然后是作者(可以不写),然后是把我们的war包交给docker去管理,让他创建镜像文件,接下来就是使用docker build,但是默认是没有版本和名字的,我们可以通过-t去指定。


内容参考慕课网:刘果国

你可能感兴趣的:(java)