Docker与虚拟机的区别
1.拥有更少的抽象层
2.不需要使用Hypervisor实现硬件资源虚拟化,直接使用实际物理机的硬件资源,因此有着比虚拟机更高的效率
docker的优点:
1.快,启动快,开销小
2.不用关注具体的linux操作系统
3.庞大的市场支持,微软,谷歌,亚马逊
4.不仅支持linux,windos和mac也支持
docker局限:
docker不管存储
Docker两种运行方式
1.交互方式创建容器,退出即关闭
2.守护进程方式创建容器
不会直接进入容器,而在后台运行
镜像原理
镜像是什么
镜像可以看作一个独立的软件包,打包软件运行时环境和机遇环境开发的软件。
镜像加载原理
docker镜像以Union文件系统作为基础
关于bootfs和rootfs
bootfs
- 作用:
bootfs(Boot File System)是操作系统启动时使用的文件系统,包含内核和引导加载程序。 - 特点:
- 在 Docker 中,
bootfs是共享的,所有容器都使用宿主机的内核。 - Docker 容器没有自己的
bootfs,而是直接使用宿主机的内核。
- 在 Docker 中,
rootfs
rootfs 是只读的,容器运行时会在其上添加一个可写层。
作用:rootfs(Root File System)是容器的根文件系统,包含操作系统的文件和目录结构(如 /bin、/usr、/etc 等)。
特点:
每个容器都有自己的 rootfs,但它是基于镜像的分层存储机制构建的。
docker的分层机制
所有docker镜像都起源于一个基础镜像层,每创建一个新的镜像都会在当前镜像层的基础上创建新的镜像层,在添加额外镜像层的同时,镜像始终是当前所有镜像的组合。
docker镜像层都是只读的,当容器启动时,一个新的可写层被加载到镜像顶部,这个就是容器层,容器层之下都叫镜像层。
Docker的容器数据卷
防止容器关闭之后数据丢失设计了数据卷
数据卷的生命周期持续到没有容器使用它为止