what is the docker

what is docker?

百度 告诉我们docker是一个容器

作为java码头搬砖的 我想到了 spring也是叫做容器

那么容器是一个什么样的概念? 不由想到了水缸—容器 容器装载水的 与水毫无关系

spring容器 IOC AOP 都晓得
IOC 把对象创建交给spring管理 然后加载到jvm中运行java 程序
AOP 面向切面编程.其实就是提供了一个切面模式.能够很好地控制类的加载顺序.或者类的执行顺序

但是本质上spring容器就是装载java程序的

那么docker?
装载各种程序的.暂时可以理解为一个系统.系统也是一个容器.装载我们运行的程序
window装载 exe. linux装载rpm. android 装载一类apk的程序 ios装载一类ipa的程序

{———-}

那么官网是怎么吹皮的呢?
Docker是推动集装箱运动的公司,也是唯一一家能够解决混合云中的每个应用的集装箱平台提供商。当今的企业面临数字化转型的压力,但受到现有应用程序和基础架构的制约,同时合理化日益多样化的云,数据中心和应用程序体系结构。Docker实现了应用程序和基础架构与开发人员和IT运营商之间的真正独立性,从而发挥其潜力,并创建更好的协作和创新模式。

docker给我们提供了什么样的先进功能? 也是我们要用它的原因

1.敏捷
通过13X加速软件开发和部署,并立即响应客户的需求。
2.可移植性
一劳永逸地消除“在我的机器上工作”。在本地和云环境中获得独立性。
3.安全
通过内置的安全功能和配置,在整个生命周期中提供更安全的应用程序。
4.节约成本
优化基础架构资源的使用并简化操作,以节省总成本的50%。

在使用上:
1.简单
Docker为应用创建和编排提供了强大的工具
2.透明度
采用开源技术和模块化设计构建,可轻松集成到现有环境中。
3.独立
Docker在开发人员和IT部门之间以及应用程序和基础架构之间创建了一个关注点,以解锁创新

在行业上
1.现代化传统应用[MTA]
Docker的第一步是现有的应用程序组合。将现有应用程序打包到容器中可以立即提高安全性,降低成本并获得云的便携性。这种转换将现代属性应用于遗留应用程序 - 所有这些都不需要更改一行代码。

2.混合云
云迁移,多云或混合云基础架构需要应用程序的无缝移植。Docker将应用程序及其依赖关系打包到一个独立的容器中,使它们可以移植到任何基础架构中 一劳永逸地消除“在我的机器上工作”的问题。Docker认证的基础架构确保集装箱化的应用程序一直工作。

3.持续集成和部署[DEVOPS]
集成现代方法并通过集成Docker和DevOps来自动化开发流程。通过消除应用程序冲突并提高开发人员的生产力,容器的独立性使其有助于快速变化的环境。Docker实现了关注的真正分离,加速了DevOps流程的采用。

4.微服务
Docker容器在设计上是轻量级的,是实现微服务应用程序开发的理想选择。加速作为单个应用程序组成的数十个或数百个容器的开发,部署和回滚。无论是构建新的微服务还是将小块服务转换为更小的服务,简单易用的工具都可以轻松组合,部署和维护复杂的应用程序。

docker安装:https://docs.docker.com/engine/installation/

docker与虚拟机区别
docekr与虚拟机区别.png

可看出虚拟机拥有较强的隔离技术。虚拟机承载的镜像都是互相独立的。
而且虚拟机中执行的进程是被虚拟机管理的,并不与主机进程等价。

docker容器技术中,最主要一点就是容器进程与主机进程等价。省去了虚拟机进程管理的消耗。
但是这样也带来了问题。容器隔离度安全问题。

另外docker中可以两个应用共用一个库。而虚拟机因为隔离性太强,只能各用个的。