Docker学习目录:https://blog.csdn.net/apollo_miracle/article/details/115394919
1 Docker为什么会出现?
做一款产品(开发项目),开发到上线需要两套环境(开发环境和生产环境),环境部署非常麻烦,其中包括应用环境、应用配置。
开发人员和运维人员有微妙的问题:项目在我的电脑上可以运行!由于版本更新,导致服务不可用!对于运维来说考验十分大。
环境配置又是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop…) ,费时费事费力。如果发布一个项目( jar + (Redis、MySQL、JDK、ES) ),项目能不能带上环境安装打包!(运维拿项目的时候带上环境安装打包)
之前在服务器配置一个应用的环境(Redis、MySQL、JDK、ES、Hadoop)配置超麻烦了,不能够跨平台。例如:开发环境Windows,最后发布到Linux!
传统:开发人员开发jar,其他的运维来做!
现在:开发、打包、部署、上线,一套流程做完!
Docker给以上的问题,提出了解决方案!例如:
开发安卓应用流程:java ---> apk ---> 发布(应用商店) ---> 张三使用apk ---> 安装即可用!
docker流程: java ---> jar(环境) ---> 打包项目帯上环境(Docker镜像) ---> ( Docker仓库:商店) ---> 下载发布的镜像 ---> 直接运行即可!
Docker的思想就来自于集装箱!
隔离,是Docker核心思想。打包装箱,每个箱子是互相隔离的。Docker通过隔离机制,可以将服务器利用到极致!
本质:所有的技术都是因为出现了一些问题,我们需要去解决,才去学习!
2 Dcoker的历史
2010年,几个搞IT的年轻人,就在美国成立了一家公司 dotcloud,做一些PaaS的云计算服务!LXC(Linux Container容器)有关的容器技术!Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。他们将自己的技术(容器化技术)命名就是 Docker。Docker刚刚延生的时候,没有引起行业的注意!导致dotCloud就活不下去!所以决定进行开源(开放源代码)。
于是2013年,Docker开源!然后越来越多的人发现docker的优点!Docker火了之后,Docker每个月都会更新一个版本!
2014年4月9日,Docker1.0发布!
docker为什么这么火?
Docker十分的轻巧!
在容器技术出来之前,我们都是使用虚拟机技术!
虚拟机技术:在window中装一个虚拟机软件(VMware),通过这个软件我们可以虚拟出来一台或者多台电脑!和真实电脑差不多,但是太笨重,可达十几个G。
虚拟机属于虚拟化技术,Docker属于容器技术,也是一种虚拟化技术!本质差不多,但是体量不同。例如:
虚拟机:linux centos/ubuntu 原生镜像(一个电脑)隔离,需要开启多个虚拟机! 需要几个G,开启需要几分钟
docker:隔离,镜像(最核心的环境 4M + jdk + mysql)十分的小巧,运行镜像就可以了!小巧!几个M,秒级启动!
Docker基于Go语言开发的!开源项目!
docker官网:https://www.docker.com/
文档:https://docs.docker.com/ Docker的文档是超级详细的!
通过百度百科了解更多:Docker
3 Docker能做什么
![虚拟机技术](https://i-blog.csdnimg.cn/blog_migrate/2f4a0c96166f3354f7daa53b5e7d68d7.png)
虚拟机技术缺点:
1. 资源占用十分多
2.冗余步骤多
3.启动很慢
![容器化技术](https://i-blog.csdnimg.cn/blog_migrate/0c7a81187cf06e2d1a2bd7714e08c464.png)
容器化技术:
容器化技术不是模拟的一个完整的操作系统
比较Docker和虚拟机技术的不同:
传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
容器内的应用直接运行在宿主机的内核中,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响
4 DevOps(开发、运维)
-
应用更快速的交付和部署
传统:一堆帮助文档,安装程序。
Docker:打包镜像发布测试,一键运行。
-
更便捷的升级和扩缩容
使用了 Docker之后,我们部署应用就和搭积木一样
项目打包为一个镜像,扩展服务器A、服务器B
-
更简单的系统运维
在容器化之后,我们的开发、测试环境都是高度一致。
-
更高效的计算资源利用
Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例!服务器的性能可以被压榨到极致
如果对您有帮助,赏口饭吃❤谢谢老板❤
| |