Docker为什么出现?

一款产品:开发—上线两套环境!应用环境,应用配置
开发 —— 运维 。问题:我在我的电脑上可以运行!版本更新,导致服务不可用,对于运维来说,考验十分大。
环境配置是非常麻烦的,每一个机器都要配置环境,费时费力。
发布一个项目,能不能都带上环境安装打包?

Docker给以上问题,提出了解决办法。
Docker的思想就来自于集装箱!
隔离是Docker核心思想,打包装箱,每个箱子都是互相隔离的。
Docker通过隔离机制,可以将服务器利用到机制。

Docker能干吗?

之前的虚拟机技术:

image.png
虚拟机技术缺点:
1、资源占用十分多
2、冗余步骤多
3、启动慢

容器化技术:

容器化技术不是模拟一个完整的操作系统
image.png

比较Docker和虚拟机技术的不同:
传统虚拟机:虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟硬件,
每个容器是互相隔离的,每个容器内都有一个属于自己的文件系统,互不影响。

DevOps

应用更快速的交付和部署
传统:一堆帮助文档,安装程序
Docker:打包镜像发布测试,一键运行

更便捷的升级和扩缩容
使用了Docker之后,我们部署应用就和搭积木一样!项目打包为一个镜像,当在服务器A上性能出现瓶颈了,我们要扩展到服务器B上,做负载均衡,直接水平扩展到服务器B上一键运行。

更简单的系统运维
在容器化之后,我们的开发测试环境都是高度一致的。

更高效的计算资源利用
Docker是内核级别的虚拟化,可以在一个物理机上运行很多个容器实例,服务器的性能被压榨到极致。