学习Docker

Docker自开源以来受到了各大公司的广泛关注,或许现在互联网公司的运维体系不承载在Docker之上都不好意思说自己是互联网公司。

原理

对Docker最简单并且带有一定错误的认知就是“Docker是一种性能非常好的虚拟机”。
正如上面所说,这是有一定错误的说法。Docker相比于传统虚拟机的技术来说先进了不少,具体表现在Docker不是在宿主机上虚拟出一套硬件后再虚拟出一个操作系统,而是让Docker容器里面的进程直接运行在宿主机上(Docker会做文件、网络等的隔离),这样一来Docker会“体积更轻、跑的更快、同宿主机下可创建的个数更多”。
Docker中有三个核心概念:Image、Container、Repository

  • Image:Docker中的镜像是分层的,可复用的,而非简单的一堆文件迭在一起(类似于一个压缩包的源码和一个git仓库的区别)。
  • Container:容器的存在离不开镜像的支持,他是镜像运行时的一个载体(类似于实例与类的关系)。依托Docker的虚拟化技术,给容器创建了独立的端口、进程、文件等“空间,Containner就是一个与宿机隔离“容器”。容器可宿主机之间可以进行port、volumer、network等的通信。
  • Repository:Docker的仓库和git仓库比较相似