一、Docker是啥?
Docker 是基于Go语言实现的一个开源项目,通过对应组建的封装,分发,部署,运行等生命周期的管理,使用户的应用及其运行环境“一次镜像,处处运行”,其实是一个应用容器,类似于一个虚拟机。
通过以容器的形式将应用程序及其所有依赖项打包成一个可运行环境就是image镜像文件就可发布到 Linux 机器,通过该image镜像文件生成Docker容器实例就可运行。
便于应用程序的交付部署,省去了以往应用在一个新环境中运行的前期工作准备各种基础的工具的安装及版本不一致导致的应用运行异常。
二、不用Docker前
没有用docker前,开发完一个应用部署时,首先要按开发本地环境,让运维先去配置基础环境,而有时因为基础的版本号不一致,导致应用运行不了,而在开发人员本地却可运行,而后各种扯皮和检查配置和版本号重新安装。
三、用Docker后,一次镜像,处处使用,一个模子里出来的
用docker后,开发只要将开发完成的应用打成一个docker镜像,该镜像(相当于复制了开发本地环境及版本及依赖),运维只要运行该镜像不存在环境不一致依赖不一致版本配置不一致等问题,保证了环境迁移的一致,就算要在多台机器上运行,只要运行该镜像就行。方便做持续集成并有助于整体发布的容器虚拟化技术。
四、Docker 的基本组成
- 镜像(image):镜像文件生成容器实例,本身也是一个文件,称为镜像文件;其实image文件可以看作是容器的模版,Docker根据文件生成容器实例,同一个image文件,可以生成多个同时运行的文件实例。
- 容器(cantainer):一个容器运行一种服务,当需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是容器;其实类似于通过镜像new出来的实例对象。
- 仓库(repository):存放一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候从仓库总拉取就行。
五、Docker Hub 是啥?
Docker Hub 是存放各种镜像模版的地方,其实就是一个最大的公开仓库docker Hub地址,存放了数量庞大的镜像提供用户下载,在国内一般用国内库下载镜像会比较快。
仓库分为公开库(Public)和私有库(private)两种形式,国内的公开库包括阿里云,网易云等。
六、Docker的好处
- 一次镜像,处处运行
- 更快速的应用交付和部署
- 更便捷的升级和扩缩容
- 更简单的系统运维
- 更高效的计算资源利用