Docker两个问题的讨论
docker中的container到底可不可以理解為一個操作系統?
先表明態度,我的理解是,NO。
主機級虛擬化
容器級虛擬化
容器通過Docker的守護進程(Docker daemon)來進行創建,現在docker公司對于Docker daemon進行了重構,現在這個任務被拆解為一個名叫containerd工具來管理容器的生命周期,由LXC(現在是runc)基于庫文件來啟動創建容器。
簡單說明
主機級虛擬化提供應用服務通過虛擬出一個VM來提供服務
容器級虛擬化通過Docker daemon及其工具直接使用宿主機內核來直接提供集裝箱一樣的服務
這一張網上的圖片說的比較生動,在lHOST啟動中,從bootfs動bootloader來引導kernel,在Docker中,docker的images通過HOST OS的kernel和LXC程序(現在是RUNC)來啟動一個鏡像,當鏡像成功被啟動后,進入rootfs,藍灰層也會被卸載掉。而rootfs就是linux文件系統。
?
?
?
docker中處于stop的container數據被存儲在哪里?
在openstack中,虛擬機在掛起或關閉狀態時,所有的資源都會被釋放,各個節點將虛擬機的信息記錄下來,作為一個模板存儲進數據庫,當這個虛擬機恢復到啟動狀態時的過程,就是各個節點通過已經記錄下的模板重新創建一個虛擬機。
我的推測,docker采用分層構建鏡像的方式,通過只讀層來記錄容器的狀態,例如基于Dockerfile構建容器時,更改Dockerfile中的順序,容器啟動速度明顯變慢。說明重新構建。
轉載于:https://www.cnblogs.com/Y139147/p/11596350.html
總結
以上是生活随笔為你收集整理的Docker两个问题的讨论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷 P2163 [SHOI2007]园
- 下一篇: 修改2440里面的FriendlyARM