认识容器:docker入门篇
docker是什么?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。(摘自百度百科)
这里我总结归纳下重点是:
打包成容器。
打包 成 容器
众所周知,一个Java 应用 war包或者jar包 启动成功,有能够对外提供服务的能力(能正常访问页面,做操作),需要部署到一台有tomcat的linux环境中。
没有容器技术前的上线流程通常出现这样的或那样的问题,比如:
1.开发环境没错,测试环境报错---->排查后发现是启动脚本里,jdk版本不对
2.测试环境没错,生产环境报错 -->排查发现是tomcat版本和jdk不匹配。
然后:
开发、运维、测试同事都很头痛,都觉得自己没问题,
总结会的时候还要扣绩效,
虽说不容易出事情,单出了事情 很影响新产品上线效率。
有个 打包 机制就不一样了,他会很强,强到可以把我这个应用运行时(能正常对外提供服务),需要的 一切 ,包括tomcat,jdk,甚至是linux文件都 打包 到一起。
这个打出来的包叫做镜像。 镜像运行时叫做容器。
可以发现 镜像可以很方便的做迁移,备份,存储,交付。
运行镜像,能对外提供服务能力的镜像运行时,叫做容器。
这样,打出来的包,优点就出来了
1.环境的强一致性。docker镜像提供了除内核外完成的运行时环境,保证其他使用人员,能完整复现应用运行时环境。不会出现“这应用在xxx环境没问题”这种情况。
2.迁移方便,持续交付和部署。一次打包,到处运行。
容器和虚拟机的区别
App在虚拟机中运行时,调用需要经过虚拟化软件的处理,才能调用到真正的宿主机操作系统。
在容器中运行,直接可以使用宿主机操作系统,省事省力,可喜可贺。
那么容器技术的又有了优点:
敏捷和高性能:直接调用宿主机操作系统,不需要经过虚拟化软件的处理。
白话总结:
docker是一种技术,能使得应用在任何环境都能用的打包技术。打包出的东西叫镜像。镜像运行时(有对外提供服务能力)叫容器。
docker && kubernetes 入门介绍pdf,请参看:
https://github.com/haoprogrammer/kubernetes-study/tree/master/pdf/umf
欢迎转载,转载请注明出处,感谢您的阅读。