一、Docker概述
Docker为什么出现
一款产品:开发——上线 两套环境!应用环境,应用配置!
开发——运维 问题:我在我的电脑上可以运行!版本更新,导致服务不可用!对于运维来说,考验就非常大
环境配置是十分麻烦的,每一个机器都要部署环境(集群Redis,ES,Hadoop)费时费力
发布一个项目(jar+(Redis Mysql jdk ES)),项目能不能都带上环境安装打包!
之前在服务器配置一个应用的环境Redis Mysql。。。配置都很麻烦,不能够跨平台
Windows,最后发布到Linux
传统:开发jar,运维来做
现在:开发打包部署上线,一套流程做完
java——apk——发布(应用商店)——张三使用apk——安装即可用
java——jar(环境)+打包项目带上环境(镜像)——(Docker仓库:商店)——下载我们发布的镜像——直接运行即可
Docker给以上问题提出了解决方案!
Docker的历史
2010年,几个搞IT的年轻人,就在美国成立了一家公司dotCloud
做一些pass的云计算服务,LXC有关的容器技术
他们将自己的技术(容器化技术)命名为Docker
2013年,Docker开源
2014年4月9日,Docker1.0发布!
Docker为什么这么火?
因为它十分的轻巧
在容器技术出来之前,我们都是使用虚拟机技术
虚拟机:在windows中装一个Vmware,通过这个软件我们可以虚拟出来一台或多台电脑,太笨重!
虚拟机也属于虚拟化技术,Docker容器技术,也是一种虚拟化技术
vm:linux centos原生镜像(一个电脑!) 隔离,需要开启多个虚拟机!
docker:隔离,镜像(最核心的环境 4M+jdk+mysql)十分的小巧,运行镜像就可以了
vm几个G几十个G 几分钟,docker几个M KB 秒级启动!
Docker是基于GO语言开发的
Docker相关网站
仓库地址:https://hub.docker.com/ git push pull
Docker能干嘛
之前的虚拟机技术
![](https://img.haomeiwen.com/i22670743/65850084fbe3b6f2.png)
缺点:
1.资源占用十分多
2.冗余步骤多
3.启动很慢
容器化技术
容器化技术不是模拟的一个完整的操作系统
![](https://img.haomeiwen.com/i22670743/9ea58ff18f71fcc1.png)
比较Docker和虚拟机技术的不同
-
传统虚拟机运行一个完整的操作系统,然后在这个系统上安装和运行软件
-
容器内的应用直接运行在宿主机,容器没有自己的内核,也没有虚拟我们的硬件,所以就轻便了
-
每个容器间是互相隔离的,每个容器都有一个属于自己的文件系统,互不影响
节省资源,利用内存!
DevOps(开发、运维)
应用更快速的交付和部署
传统:一堆帮助文档,安装程序
Docker:一键运行打包镜像发布测试
更便捷的升级和扩缩容
使用了Docker之后,我们部署应用就和搭积木一样
更简单的系统运维
更高效的计算资源利用
比如可以运行几十个Tomcat
Docker是内核级别的虚拟化,可以在一个机器上运行很多的容器实例