Docker 中的 bootfs、rootfs 簡(jiǎn)介
Docker 之 bootfs、rootfs 概述

前言
在容器技術(shù)中,bootfs 和 rootfs 是與容器文件系統(tǒng)相關(guān)的概念,用于描述容器內(nèi)操作系統(tǒng)的不同層次。它們的功能類(lèi)似于傳統(tǒng)操作系統(tǒng)的文件系統(tǒng)層,但在容器中以更輕量化的形式實(shí)現(xiàn)。
什么是 bootfs?
bootfs(Boot File System)是文件系統(tǒng)的引導(dǎo)層,主要包含用于啟動(dòng) Linux 內(nèi)核的最基本文件。
- 功能:
- 包含內(nèi)核啟動(dòng)相關(guān)的內(nèi)容(類(lèi)似于傳統(tǒng)操作系統(tǒng)的
/boot)。 - 當(dāng)內(nèi)核加載完成并進(jìn)入運(yùn)行態(tài)后,
bootfs就會(huì)被卸載,交由rootfs。
- 包含內(nèi)核啟動(dòng)相關(guān)的內(nèi)容(類(lèi)似于傳統(tǒng)操作系統(tǒng)的
- 在容器中的表現(xiàn):
- 容器使用宿主機(jī)的內(nèi)核,因此容器啟動(dòng)時(shí)不需要額外加載自己的
bootfs。 - 容器啟動(dòng)過(guò)程中不會(huì)涉及獨(dú)立的內(nèi)核加載,
bootfs通常由宿主機(jī)的內(nèi)核提供支持。
- 容器使用宿主機(jī)的內(nèi)核,因此容器啟動(dòng)時(shí)不需要額外加載自己的
什么是 rootfs?
rootfs(Root File System)是容器的根文件系統(tǒng),包含操作系統(tǒng)運(yùn)行所需的基本目錄結(jié)構(gòu)和工具,例如 /bin、/lib、/etc 等。
- 功能:
- 提供容器運(yùn)行的環(huán)境,包括系統(tǒng)庫(kù)、應(yīng)用程序、配置文件等。相當(dāng)于操作系統(tǒng)的根目錄。
- 在容器中的表現(xiàn):
- 容器的
rootfs通常是一個(gè)精簡(jiǎn)版的文件系統(tǒng)。 - 容器共享宿主機(jī)內(nèi)核,因此不需要提供完整的操作系統(tǒng),只需要提供運(yùn)行應(yīng)用程序的最小化環(huán)境。
- 容器的
- rootfs 的來(lái)源:
- 可以是完整的操作系統(tǒng)鏡像(如 Ubuntu、CentOS)。
- 可以是精簡(jiǎn)的文件系統(tǒng)(如 Alpine Linux,只包含基礎(chǔ)工具和庫(kù))。
容器文件系統(tǒng)的關(guān)系
傳統(tǒng)操作系統(tǒng):
- 啟動(dòng)時(shí),
bootfs負(fù)責(zé)加載內(nèi)核,隨后切換到rootfs,為用戶(hù)提供完整的操作系統(tǒng)環(huán)境。
容器:
- 容器的啟動(dòng)過(guò)程依賴(lài)于宿主機(jī)內(nèi)核,因此沒(méi)有獨(dú)立的
bootfs。 - 容器只需要
rootfs提供用戶(hù)空間所需的文件和依賴(lài)。
容器文件系統(tǒng)的特點(diǎn)
分層文件系統(tǒng): 容器的文件系統(tǒng)使用分層存儲(chǔ),如 OverlayFS、AUFS 等。
- 鏡像層(read-only): 提供基礎(chǔ)文件系統(tǒng)(通常是
rootfs)。 - 容器層(read-write): 容器啟動(dòng)時(shí)在鏡像層上添加一個(gè)讀寫(xiě)層,存儲(chǔ)運(yùn)行時(shí)的更改。
輕量化:
- 容器的
rootfs只包含運(yùn)行所需的最小組件,減少資源占用。
通過(guò)以上概述,這回你就明白了為什么你在容器中看到的內(nèi)核版本與宿主機(jī)是一樣的,盡管發(fā)行版本不一樣,同時(shí)你也應(yīng)該明白了,為什么運(yùn)行一個(gè)容器是如此的輕量級(jí)。
到此這篇關(guān)于Docker 之 bootfs、rootfs 概述的文章就介紹到這了,更多相關(guān)Docker bootfs、rootfs內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Docker部署的基于binlog實(shí)現(xiàn)Mysql8的操作方法
MySQL 基于?Binlog?的主從復(fù)制(Master-Slave Replication)是 MySQL 數(shù)據(jù)庫(kù)中實(shí)現(xiàn)數(shù)據(jù)復(fù)制的一種機(jī)制,這篇文章主要介紹了使用Docker部署的基于binlog實(shí)現(xiàn)Mysql8,需要的朋友可以參考下2025-01-01
Docker部署Laravel應(yīng)用的實(shí)現(xiàn)示例
這篇文章主要介紹了Docker部署Laravel應(yīng)用的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
使用docker-compose創(chuàng)建網(wǎng)橋過(guò)程
文章介紹了通過(guò)docker-compose創(chuàng)建網(wǎng)橋(使用hello-world鏡像),容器退出后網(wǎng)橋仍存在;刪除網(wǎng)橋時(shí)使用docker-composedown,網(wǎng)橋消失但其他容器可能仍依賴(lài)其網(wǎng)絡(luò)2025-08-08
使用Docker自動(dòng)化部署項(xiàng)目的全過(guò)程
文章介紹了兩個(gè)項(xiàng)目的Docker部署方案:一是通過(guò)Dockerfile構(gòu)建Boost搜索引擎鏡像并配置依賴(lài)庫(kù),二是使用docker-compose編排Web應(yīng)用、MySQL、Redis及編譯器服務(wù),實(shí)現(xiàn)多容器協(xié)同部署與環(huán)境隔離2025-07-07
聊聊Docker中容器的創(chuàng)建與啟停問(wèn)題
一個(gè)進(jìn)程可以視為一個(gè)被執(zhí)行的應(yīng)用程序,同樣,一個(gè)Docker容器可以視為一個(gè)運(yùn)行中的Docker鏡像,這篇文章主要介紹了Docker中容器的創(chuàng)建與啟停,需要的朋友可以參考下2022-06-06
docker-compose如何定義一個(gè)橋接網(wǎng)絡(luò),并為該網(wǎng)絡(luò)配置一個(gè)IP地址池
在DockerCompose中定義橋接網(wǎng)絡(luò)并配置IP地址池,可以實(shí)現(xiàn)服務(wù)的自動(dòng)IP地址分配,通過(guò)定義網(wǎng)絡(luò)、指定子網(wǎng)范圍、設(shè)置網(wǎng)關(guān)和啟用自動(dòng)分配功能,可以輕松管理服務(wù)的網(wǎng)絡(luò)配置,確保IP地址在子網(wǎng)范圍內(nèi)且不與其他網(wǎng)絡(luò)沖突,以避免網(wǎng)絡(luò)沖突2025-01-01
docker安裝redis并以配置文件方式啟動(dòng)詳解
這篇文章主要介紹了docker安裝redis并以配置文件方式啟動(dòng)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

