Docker的简单了解

Docker是什么

Docker是基于Go语言实现的云开源项目,是一个开源的应用容器引擎,Docker解决了运行环境和配置的问题,方便做持续集成同时有助于整体发布。

为什么要用Docker

软件开发结束后,开发一般都是把jar包或者war包交给运维人员,由运维人员来做部署和发布,但是由于war包或者jar包中其实只包含了代码,而一个程序能跑成功,还需要依赖系统环境和配置,开发一般都是依赖于自己的本地环境和配置来做自测,而这时如果运维部署的环境和开发本地的不一致,就很有可能导致代码无法正确运行,比如使用的JDK版本不同,低版本无法使用高版本的一些特性,安装的中间件版本不同,有些Api可能已经发生了改变等等问题,都会导致程序无法做到像在本地一样运行一样正确。这时候就会想到那有没有办法把能够成功运行的系统环境和配置,代码这些都一起打成一个包呢,Docker就是这样做的,不过Docker把这种包叫做镜像。做个简单的类比就是,比如移植植株时,假设泥土就是它成功生长的环境,以前移植都是直接从土里挖出来,然后种在自己的后院土地里,用的是自己后院的土,泥土的各种参数不同,导致植株会出现各种问题,这时候docker来了,它建议移植植株时,把种植植株的泥土也挖回去,这样虽然都是在自家后院里,但是植株的生长环境却是没变,还是老泥土,自然能成功生长了。docker比较通俗的理解就是,软件带上了环境安装,安装时,也带上了一摸一样的原始环境,这样开发人员就不用再苦口婆心的解释着:“不对啊,我本地是可以运行的呀”。当然了,docker一旦生成了镜像,就可以做到一次创建,到处运行,和JVM是不是有点像,这就保证了,当你做集群和扩容时,不用在每台机器上做循环重复的安装工作,有了初始定义的镜像,直接使用镜像生成相应容器运行就好了。

Docker三要素

镜像(Image):Docker镜像(Image)就是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建很多容器,可以把它理解成Java里的类。

容器(Container):容器是镜像的实例化,是用镜像创建的运行实例,可以把容器理解成Java里的对象。

仓库(Repository):仓库是集中存放镜像文件的场所,类比成github就很容易理解了,所以仓库也可以分为公开仓库和私有仓库两种形式。

发布了289 篇原创文章 · 获赞 302 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/105041911
今日推荐