docker理论

1,概念

docker四一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的linux活windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,互相之间不会有任何的接口

2.docker和虚拟机比较

容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而虚拟机则是在硬件层面实现

虚拟机在本质上就是在模拟一台真是的计算机设备,同时遵循同样的程序执行方式,虚拟机能够利用“虚拟机管理程序”运行在物理设备上,反过来讲,虚拟机管理程序则可运行在主机设备或者“裸机”之上

传统的虚拟机需要模拟整台机器包括硬件,每台虚拟机都需要自己的操作系统,虚拟机一旦被开启,则分配给它的资源将会被全部占用,每一台虚拟机可以说是一个完整的操作系统。

总结 docker优点:

  • docker启动快速属于秒级别,虚拟机通常需要几分钟去启动。
  • docker需要的资源少,docker在操作系统级别进行虚拟化,docker容器和内核交互几乎是没有消耗的,性能优于通过虚拟机
  • docker的架构可以共用一个内核与共享应用程序库,所占内存极小,所以docker更轻量级,docker运行的镜像数远多于计算机可以承受的操作系统的数量,对系统的利用率极高
  • docker能保持环境的一致性,不同的环境具有相同的配置(可以在部署和测试两个平台一起使用)
  • docker可以确保你的应用程序与资源是分隔开的,但是在管理和控制方面还需要完善

3,docker中的两大重要概念

docker镜像(images)是一个只读版本,包含了容器运行时所需要的文件系统和一些参数,镜像是无状态的,也不会改变,镜像是用来创建容器的,你可以使用docek Pull命令获取一个别人已经创建好的镜像,或者使用dockerbulid构建一个自己的镜像。

docker容器就像是一个文件夹,容器中包含了应用运行所需要的一切,每个容器都是一个隔离的和安全的应用平台,容器是镜像的一个实例,它是有状态的,而且随时会改变,容器一般是短暂的,可以通过镜像随时生成一个容器。

4,docker引擎

docker引擎是一个c/s架构的应用,主要组件有

  • server是一个常驻进程
  • rest api实现了client和server间的交互协议
  • CLI实现容器和镜像管理,为用户提供统一的操作界面
  • image是镜像
  • container是容器

注意:

  • docker容器通过docker镜像来创建
  • 容器和镜像之间的关系类似于面向对象编程中的对象与类
  • docker ------ 面向对象
  • 容器 ---------对象
  • 镜像 ----------类

5,docker分几部分

镜像(image):docker镜像用于创建容器的模板

容器(container):容器是独立运行的一个或一组应用

客户端(client):docker客户端通过命令或者其他工具使用docker API与docker的守护进程通信

主机(host):一个物理或者虚拟的机器用于执行docker守护进程和容器

仓库(registry):docker仓库用来保存镜像,可以理解为代码控制中的代码仓库

Docker Hub(https://hub.docker.com)提供了庞大的镜像集合供使用

在这里插入图片描述
在这里插入图片描述


版权声明:本文为weixin_43477557原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。