Docker是什么
Docker是一款由DotCloud公司(现改名为Docker)基于Go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何影响。
Docker相关概念
Docker 客户端(Docker Client)
Docker客户端分为2种,一种是基于命令行的Docker客户端,在终端使用Docker命令来工作;另外一种是基于REST API的客户端。
Docker 镜像(Docker Image)
镜像顾名思义,可以理解为就是一个安装包,放到恰当的环境中就可以开箱即用。例如*.EXE文件,windows下可以直接运行。同理,docker镜像在docker环境中,即可直接运行,实例化一个容器将镜像的应用程序封装在里面。
Docker 容器(Docker Container)
Docker镜像运行后,此时就实例化了一个Docker容器。镜像作为一个安装包,可以无限被安装,即可以运行无数个容器来运行里面的应用程序。
Docker 镜像注册中心(Docker Register)
Docker 官方了一个类似Maven仓库私服的镜像管理中心Docker Hub,可以存放私有和公共的Docker镜像。
Docker Hub地址:https://hub.docker.com
更多操作请读者,自行体验。
Docker与虚拟机对比
Docker和虚拟机都是提供了不同程度的隔离环境。Docker侧重的是应用级别,而虚拟机是彻底隔离整个运行环境。相比之下Docker显得更轻量级。启动速度也比虚拟机快很多,Docker号称是可以毫秒级别的启动,相比虚拟机没个几十秒甚至几分钟是起不来的。
从运行架构来看,两者很类似,虽然本质相差甚远。
Docker容器需要在Docker引擎之上运行,Docker容器上安装应用的运行环境,然后在此环境下运行各种终端应用。
同理,虚拟操作系统需要虚拟机软件上,如Oracle VirtualBox、VMware Workstation等,然后在虚拟操作系统支持的运行环境(windows、linux)安装应用。
Docker的特性
对于容器技术,Docker并不是先驱者,很早之前就有了。并且Docker并没有创造任何新技术,它是通过在底层封装linux容器技术(LXC)来实现的。那么,问题来了,Docker为毛能火?
Docker拥有以下特点:
快速运行
上面提到了与虚拟机的对比,可知,Docker启动速度有多快,没错,就是毫秒级别。要的就是开发效率。
节省资源
Docker容器运行在Docker引擎之上,能够直接使用宿主机硬件资源,无须占用过多的系统资源。
方便交付
Docker将应用以及运行环境打包成一个镜像,交付更简单、高效。
管理省心
通过Docker客户端可直接操作Docker引擎,非常方便管理Docker镜像和容器。
Docker安装
以下是不同操作系统的安装方法
linux(centos 7.x)
第一步:更新yum包
$ yum update
第二步:安装docker引擎
$ yum install docker-engine
第三步:启动
$ systemctl start docker.service
第四步:查看版本
$ docker version
mac os
由于我在mac上使用brew死活安装不了Docker,选择了安装包安装。
下载地址:https://download.docker.com/mac/stable/Docker.dmg
直接运行,下一步下一步就好了。
windows
下载地址:https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe
点击运行即可一如既往的下一步下一步完成安装。
推荐
ifast是一款基于Spring Boot + Mybatis + Mybatis Plus搭建的快速开发平台。ifast集成了代码生成器,具有高效的开发效率。以Spring Boot为基础框架,Mybatis plus为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,基于Bootstrap构建的hplus作为前端框架。
访问请点击 Java快速开发脚手架 ifast