Docker內(nèi)核文件系統(tǒng)是Docker容器中唯一可寫的層,它是容器文件系統(tǒng)的第一層,也是Docker中的最后一層。Docker內(nèi)核文件系統(tǒng)的特點(diǎn)是它是只讀的,不可修改,它是用于保存容器運(yùn)行時的狀態(tài),它是只讀的,所有容器的文件系統(tǒng)操作都在該文件系統(tǒng)之上進(jìn)行,并且該文件系統(tǒng)可以共享,相同的Docker鏡像可以共享同一個內(nèi)核文件系統(tǒng)。
vm3:~ # docker run -it debian:buster-slim /bin/bash
root@445206e1a580:/# echo "Hello World"
Hello World
root@445206e1a580:/# exit
exit
vm3:~ # docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
445206e1a580 debian:buster-slim "/bin/bash" 2 minutes ago Exited (0) 4 seconds ago stupefied_ramanujan
vm3:~ # docker commit 445206e1a580 debian:hello-world
sha256:cbc0adedbc37e640e9d6ff2b2088e112017af160c6f880b6f73bcc6e65915487
vm3:~ # docker run debian:hello-world /bin/echo "Hello World"
Hello World
如上述命令所示,我們使用Docker內(nèi)置命令run以交互模式啟動了一個Debian容器,并在其中執(zhí)行了打印"Hello World"的操作。當(dāng)我們執(zhí)行了exit退出容器并查看容器列表時,我們可以看到容器已經(jīng)停止了。接著我們使用docker commit命令將該容器保存為debian:hello-world鏡像。最后,我們再次使用docker run命令從該鏡像啟動包含之前打印"Hello World"內(nèi)容的容器,這就是Docker內(nèi)核文件系統(tǒng)的本質(zhì)。