Docker 中的 bootfs、rootfs 简介

 更新时间:2024年12月04日 09:48:57   作者:云计算-Security  
Docker中的bootfs和rootfs是容器文件系统的两个层次,bootfs负责内核启动,而rootfs提供运行环境,容器共享宿主机内核,因此没有独立的bootfs,只使用精简的rootfs,感兴趣的朋友跟随小编一起看看吧

Docker 之 bootfs、rootfs 概述

docker-facebook

前言

在容器技术中,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 只包含运行所需的最小组件,减少资源占用。

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

到此这篇关于Docker 之 bootfs、rootfs 概述的文章就介绍到这了,更多相关Docker bootfs、rootfs内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MacOS Docker 安装的实现步骤

    MacOS Docker 安装的实现步骤

    本文主要介绍了MacOS Docker 安装的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 在docker中运行mariadb程序的方法

    在docker中运行mariadb程序的方法

    这篇文章主要介绍了在docker中运行mariadb程序的方法,首先大家先安装docker,然后在进行相应的操作,具体内容详情大家参考下本文
    2018-05-05
  • docker-registry使用笔记

    docker-registry使用笔记

    在国内docker-hub是肯定用不了的,不解释:所以最好还是建一个私有的docker-registry,存储一些常用的images方便随时pull
    2016-09-09
  • docker容器中登陆并操作postgresql的实现

    docker容器中登陆并操作postgresql的实现

    本文主要介绍了docker容器中登陆并操作postgresql的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • 使用docker compose一键部署多个服务的方法

    使用docker compose一键部署多个服务的方法

    docker compose 是 docker 官方的开源项目,用来实现对 docker 容器集群的快速编排,通过docker-compose可以一键创建和删除多个容器 ,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-01-01
  • docker可视化管理工具portainer忘记密码重置教程的实现

    docker可视化管理工具portainer忘记密码重置教程的实现

    本文主要介绍了docker可视化管理工具portainer忘记密码重置教程的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • docker镜像与传统vm虚拟机区别及分析

    docker镜像与传统vm虚拟机区别及分析

    这篇文章主要是内容分享系列,为大家用大白话通俗的讲解docker镜像与传统vm虚拟机区别以及分析,有需要的朋友可以借鉴参考想,希望能够有所帮助
    2022-03-03
  • docker中的link和network网络互连问题

    docker中的link和network网络互连问题

    这篇文章主要介绍了docker中的link和network网络互连问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Spring Boot使用Docker分层打包的设置方法

    Spring Boot使用Docker分层打包的设置方法

    Spring Boot 现在支持分层打包技术了, 我们也来用一用, 加速Docker打包, 构建的时候速度也会非常快.本文重点给大家介绍Spring Boot使用Docker分层打包的设置方法,感兴趣的朋友一起看看吧
    2021-08-08
  • centos7搭建docker私人仓库的方法(kubernetes)

    centos7搭建docker私人仓库的方法(kubernetes)

    这篇文章主要介绍了centos7搭建docker私人仓库的方法(kubernetes),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03

最新评论