【工作向】docker的基本概念
docker,虚拟机,操作系统虚拟化,容器/镜像/仓库
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
更多推荐
所有评论(0)