最近学习了docker,上手后一发不可收拾,真香!

docker的宗旨是:一次构建、到处运行。正好呼应了java语言的一次编译、到处运行的理念。

具体的使用方法,我不在阐述,就说下解决了我的那些痛点?

1、开发中使用的一些第三方服务、中间件、我不在关心怎么安装,怎么配置环境变量,怎么选择版本的问题,我优先会想到这个第三方服务有没有docker镜像呢。

2、我自己开发的应用,不用在关心我的应用如何部署的问题了,我可以直接把我的运行环境打包成一个镜像文件。通过容器化部署的方式,解决了不同操作系统之间的差异而造成的额外的部署成本。

另外强调一下,docker是个容器引擎技术,而不是容器本身。他的架构设计,可以用github,maven的概念来类比,docker有官方的镜像仓库:Docker Hub,就相当于maven的远程仓库一样,存放着各种服务的镜像;docker有国内对应的镜像仓库:阿里云,也可以设置自己的私有镜像仓库,或者叫本地镜像仓库。

目前我们开发中常用的中间件,数据库,缓存之类的都有相应的镜像,eg:tomcat、mysql、oracle、redis、mongo、甚至我们经常使用的gitlab代码仓库等都有自己的镜像的。

我们不在关心如何下载这些软件服务,如何安装配置的繁琐问题,只需要下载下来镜像文件,启动镜像、就可以使用了。

传统的系统应用部署的对象是面对应用本身,而docker面对的是整个服务的涉及的所有运行环境。