Study-01-Docker概述
目录
1.Docker为什么会出现?
1.1Docker出现原因
1.一款产品:开发--上线两套环境: 应用环境和应用配置。(开发和运维环境冲突)
2.开发……运维。问题︰我在我的电脑上可以运行!版本更新,导致服务不可用!对于运维来说,考验就十分大?环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop.....)!费时费力。
3.发布一个项目( jar + ( Redis MysQL jdk ES ) ),项目能不能都带上环境安装打包!
4.之前在服务器配置一个应用的环境Redis MySQL jdk ES Hadoop,配置超麻烦了,不能够跨平台。Windows,最后发布到Linux !
5.对比:
传统∶开发jar,运维来做!
现在∶开发打包部署上线,一套流程做完!
6.产品发布流程
java -- apk --发布(应用商店)----张三使用apk ---安装即可用!
java- jar (环境l)---打包项目带上环境(镜像) ------( Docker仓库:商店 )----下载我们发布的镜像---直接运行即可!
1.2Docker思想
1.Docker的思想就来自于集装箱!
2.JRE -多个应用(端口冲突) --原来都是交叉的!(所以要解决这个问题)
3. 隔离: Docker核心思想就是打包装箱,每个箱子是互相隔离的。
4.Docker机制可以将服务器利用到极致。
2.Docker的历史
1.2010年,几个搞IT的年轻人,就在美国成立了一家公司dotcloud做一些pass的云计算服务! LXC有关的容器技术,他们将自己的技术(容器化技术)命名就是 Docker !
2.Docker刚刚诞生的时候,没有引起行业的注意! dotCloud,就活不下去,于是选择了开源。
3.2013年,Docker开源。
4.Docker越来越多的人发现了docker的优点,后来Docker每个月都会更新一个版本,在2014年4月9日,Docker1.0发布。
5.Docker为什么这么火?十分的轻巧!
6.在容器技术出来之前,我们都是使用虚拟机技术。
ps:虚拟机∶在window中装一个Vmware,通过这个软件我们可以虚拟出来一台或者多台电脑,笨重---虚拟机也是属于虚拟化技术。Docker容器技术,也是一种虚拟化技术。
vm : linux centos原生镜像(一个电脑 )隔离,需要开启多个虚拟机,几分钟,费时费力
docker: 隔离,镜像(最核心的环境4m + jdk + mysq1)十分的小巧,运行镜像就可以了!小巧! 秒级启动!
3.Docker官网
1.docker是基于Go语言开发的,是一个开源项目。
2.官网:Home - Docker
3. 文档地址:Docker Documentation | Docker Documentation
仓库地址:Docker Hub
4.Docker可以做什么?
1.传统的虚拟机方式
2. 虚拟机技术缺点:
(1)资源占用十分多;
(2)冗余步骤多;
(3)启动很慢;
3.容器化技术(不是模拟的一个完整的操作系统)
比较Docker和虚拟机技术的不同:
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后这个系统上安装和运行软件。
- 容器内的应用直接在 宿主机的内核中运行,容器是没有自己的内核的,也没有虚拟硬件。所以就轻便了。
- 每个容器间相互隔离,每个容器内都有一个属于自己的文件系统,互不影响。
4.DevOps(开发、运维)
应用更快速的交付和部署
传统:一堆帮助文档,安装程序。
Docker:打包镜像发布测试,一键运行。
更便捷的升级和扩容
项目打包为一个镜像(理解成一个带着环境的应用),扩展直接运行即可。
更简单的系统运维
容器化开发中测试环境是高度一致的。
更高效的计算资源利用
Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例,更好的利用服务器资源。