Docker內核文件系統是Docker容器中唯一可寫的層,它是容器文件系統的第一層,也是Docker中的最后一層。Docker內核文件系統的特點是它是只讀的,不可修改,它是用于保存容器運行時的狀態,它是只讀的,所有容器的文件系統操作都在該文件系統之上進行,并且該文件系統可以共享,相同的Docker鏡像可以共享同一個內核文件系統。
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內置命令run以交互模式啟動了一個Debian容器,并在其中執行了打印"Hello World"的操作。當我們執行了exit退出容器并查看容器列表時,我們可以看到容器已經停止了。接著我們使用docker commit命令將該容器保存為debian:hello-world鏡像。最后,我們再次使用docker run命令從該鏡像啟動包含之前打印"Hello World"內容的容器,這就是Docker內核文件系統的本質。