什么是Docker,docker是什么

Docker有什么优势?

什么是Docker,docker是什么


单纯的Docker是一个非常难理解的东西 , 它和虚拟机有些类似 , 但又不等同于虚拟机 , 它们的原理是不同的 。虚拟机只是对硬件进行虚拟化 , 基于物理机的硬件虚拟出一套硬件之后 , 在这个基础上运行一个完整的操作系统 , 而Docker是虚拟化的容器 , 容器虚拟化的是操作系统而不是硬件 , 容器和容器之间共享同一套操作系统资源 。
容器的优势是非常明显的:虚拟机将一台服务器变成多台服务器 , 每一个VM都拥有整套的操作系统、需要占用大量的空间 , 所以VM启动缓慢系统也会占用很多的硬件资源 。代码、依赖的资源打包在一起形成一个容器 , 容器没有自己的内核 , 容器内的应用直接运行在系统的内核上 , 多个容器可以同时运行共享系统内核 , 但容器之间又以相互独立的进程在运行 。
所以容器比虚拟机要轻便很多 , 几乎瞬间就能启动 。如此这般说Docker的概念还是很抽象 , 举个例子:Ubuntu的系统搭建的项目要部署到CentOS的服务器上 , 所有依赖的环境(比如:MySQL、Redis等等)都需要重新安装一遍 , 并按照部署的要求进行配置 。使用Docker只需要一条命令就可以达成 , 需要MySQL只需要安装一个MySQL的镜像 , 需要Redis只需要安装一个带Redis的镜像 , 然后启动这些容器就可以 。
容器可以用别人制作的 , 也可以添加一些自己的软件、修改相应的配置文件做一个镜像 , 通过这个镜像就可以创建出无数个一模一样的容器 。Docker和各大开源项目团队一起维护着庞大高质量的官方镜像 , 我们可以直接使用或者修改定制后再使用 。你还无法体会这样的优势所在 , 比如通过一个Redis镜像 , 可以轻松的搭建一个集群 。
容器更多地用来表示软件的标准化单元 , 无视物理硬件设施之间的差异部署到任意位置、任意平台 , 所以容器又被誉为代码集装箱装卸工 。如此这般就不会再出现诸如“这段代码在我机器上运行没有问题”之类的 , 可以轻松的将在一个平台上运行的应用 , 迅速的迁移到另一个平台 , 而不用考虑平台和运行环境的兼容性 。Docker包含了镜像(Image)、容器(Container)、仓库(Repository)Docker的镜像相当于Linux的root文件系统 , 它提供容器运行所需要的软件、资源、配置参数、库文件等等 。
容器才是运行的实体 , 镜像是经过一层层构建定义的 , 里面不包含任何动态数据 , 构建完之后就不会再改变 , 而容器可以创建、启动、停止、暂停、删除 。仓库是用来集中存放镜像文件 , 这样就便于服务器进行统一的管理 。Docker码头装卸工的形象已经深入人心Docker将开源仓库的镜像拉到本地 , 镜像运行后在本地运行形成容器 , 这个就是Docker码头装卸工的形象 , 已经深入人心 。
如何通俗的解释“Docker”?
【什么是Docker,docker是什么】
什么是Docker,docker是什么


Docker到现在为止 , 已经越来越流行了 。主要是因为他的便捷 , 加之当下微服务成为后端横向扩展的一种解决思路 , 而微服务又是依赖于容器的 。那么现在就来说说什么是 Docker:其实 docker 的概念就像是集装箱 , 正如上图所示 。一对集装箱 , 装载有不同的 环境或软件 。比如我有一艘船 , 需要运输一批有毒的化学物质 , 还要运输一批食材 , 牛肉 , 水果等 , 但是你不能将这些物质混合装在一起吧 , 因为会影响到食物 , 到时候就损失一大笔 money 了 。

推荐阅读