1. 虚拟机

  • VMWare这类软件直接操作硬件或通过Host OS操作硬件,如下图
    图片名称
  • 虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行应用进程
  • 多台虚拟机运行会造成大量的硬件资源浪费,docker技术应运而生

2. docker container

  • 容器和虚拟机的区别:容器的应用进程直接运行于宿主的内核,容器内没有自己的内核,也没有进行硬件虚拟,因此容器比传统虚拟机更为轻便
    图片名称

  • 操作系统层虚拟化,容器将应用和运行库打包

  • App + Lib的组合就是一个容器,也就是docker的集装箱container

  • 相较虚拟机,容器的特点

    启动迅速。容器没有虚拟机硬件的初始化,没有guest os的启动过程,节约启动时间,“开箱即用”

    占用资源少。没有运行Guest OS所需的内存开销,无需为虚拟机预留运行内存,无需安装、运行App不需要的运行库/操作系统服务,内存占用、存储空间占用都小的多

    内核崩溃影响大。容器共用内核,通过控制组cgroup隔离,不如虚拟机彻底。内核崩溃则所有容器崩溃,不同虚拟机之间影响没这么大

    方便部署、迁移和维护

3. docker的一些概念

  • docker的两大口号

    build, ship and run.
    build once, run anywhere.

  • 和三大概念

    镜像:image, docker镜像
    容器:container, docker容器
    仓库:repository, docker仓库

  • docker名词解释

    仓库:docker registry公共仓库,docker镜像管理,有很多镜像

    镜像:一种特殊的文件系统,包含运行时所需的程序、库、资源、配置等。

    容器:是指image运行时,包含了文件资源和系统资源。文件资源:image展开;系统资源:变成process存在于系统中

    docker swarm: docker公司推出的容器调度平台

    kubernetes: k8s, google主导的容器调度平台

    容器调度平台:m个master节点和n个worker节点组成的集群。整合主机资源,完成网络、存储、CPU和内存等资源的管理,将容器运行在不同主机上

  • 镜像的分层layer结构
    在这里插入图片描述
    镜像层最上方存在一个可写的容器层,docker commit打包镜像就是将该可写容器层变成一个只读镜像层,作为新镜像的镜像层;

    每一层代表了镜像构建过程中的一次提交;

    一个镜像最多127层

    前一层是后一层的基础,每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层

    删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除;因此每一层操作均需格外小心,任何额外的东西都应该在该层结束前清理掉


参考文章:
docker原理通俗讲解
docker基本概念

created by shuaixio, 2021.11.11

点击阅读全文
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐