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

相关推荐
智能运维指南20 小时前
代码管理软件如何融入 DevOps 工具链?全链路联通的 5 个关键点
运维·devops·信创适配·嘉为蓝鲸
充电zcx20 小时前
Linux:4:开发工具详解
linux·运维·服务器
九皇叔叔1 天前
Kubernetes 核心概念:集群架构、核心组件与资源对象
docker·容器·kubernetes·k8s
rustfs1 天前
MinIO 国产开源平替正式 GA
分布式·docker·云原生·rust
gongfeng30001 天前
福州企业级AI自动化获客解决方案品牌梳理与适用场景分析
运维·人工智能·自动化·g-claw ai员工
光电笑映1 天前
网络通信基础:从协议分层到 Socket 编程预备
linux·运维·服务器·网络
微小冷1 天前
用Mermaid画时序图
运维·流程图·时序图·mermaid·生命线
其实防守也摸鱼1 天前
Codex 下载与本地部署实战:从安装到运行全指南
android·大数据·运维·安全·自动化
wdfk_prog1 天前
ROS教程07:从 ros::start() 顺着源码读懂 Master、XML-RPC 与 Topic 注册发现
运维·缓存·docker·容器·ros
吴声子夜歌1 天前
Shell编程实例——与解析相关的任务(二)
linux·运维·shell