Docker 之 bootfs、rootfs 概述

Docker 之 bootfs、rootfs 概述


目录


前言

在容器技术中,bootfsrootfs 是与容器文件系统相关的概念,用于描述容器内操作系统的不同层次。它们的功能类似于传统操作系统的文件系统层,但在容器中以更轻量化的形式实现。

什么是 bootfs?

bootfs(Boot File System)是文件系统的引导层,主要包含用于启动 Linux 内核的最基本文件。

  • 功能:
    • 包含内核启动相关的内容(类似于传统操作系统的 /boot)。
    • 当内核加载完成并进入运行态后,bootfs 就会被卸载,交由 rootfs
  • 在容器中的表现:
    • 容器使用宿主机的内核,因此容器启动时不需要额外加载自己的 bootfs
    • 容器启动过程中不会涉及独立的内核加载,bootfs 通常由宿主机的内核提供支持。

什么是 rootfs?

rootfs(Root File System)是容器的根文件系统,包含操作系统运行所需的基本目录结构和工具,例如 /bin/lib/etc 等。

  • 功能:
    • 提供容器运行的环境,包括系统库、应用程序、配置文件等。
    • 相当于操作系统的根目录。
  • 在容器中的表现:
    • 容器的 rootfs 通常是一个精简版的文件系统。
    • 容器共享宿主机内核,因此不需要提供完整的操作系统,只需要提供运行应用程序的最小化环境。
  • rootfs 的来源:
    • 可以是完整的操作系统镜像(如 Ubuntu、CentOS)。
    • 可以是精简的文件系统(如 Alpine Linux,只包含基础工具和库)。

容器文件系统的关系

传统操作系统:

  • 启动时,bootfs 负责加载内核,随后切换到 rootfs,为用户提供完整的操作系统环境。

容器:

  • 容器的启动过程依赖于宿主机内核,因此没有独立的 bootfs
  • 容器只需要 rootfs 提供用户空间所需的文件和依赖。

容器文件系统的特点

分层文件系统: 容器的文件系统使用分层存储,如 OverlayFS、AUFS 等。

  • 镜像层(read-only): 提供基础文件系统(通常是 rootfs)。
  • 容器层(read-write): 容器启动时在镜像层上添加一个读写层,存储运行时的更改。

轻量化:

  • 容器的 rootfs 只包含运行所需的最小组件,减少资源占用。

通过以上概述,这回你就明白了为什么你在容器中看到的内核版本与宿主机是一样的,尽管发行版本不一样,同时你也应该明白了,为什么运行一个容器是如此的轻量级。

---END

相关推荐
小p13 小时前
docker学习7:docker 容器的通信方式
docker
小p14 小时前
docker学习5:提升Dockerfile水平的5个技巧
docker
小p15 小时前
docker学习3:docker是怎么实现的?
docker
小p2 天前
docker学习: 2. 构建镜像Dockerfile
docker
小p2 天前
docker学习: 1. docker基本使用
docker
蝎子莱莱爱打怪3 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
崔小汤呀3 天前
Docker部署Nacos
docker·容器
缓解AI焦虑3 天前
Docker + K8s 部署大模型推理服务:资源划分与多实例调度
docker·容器
1candobetter3 天前
Docker Compose Build 与 Up 的区别:什么时候必须重建镜像
docker·容器·eureka
DianSan_ERP3 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet