欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

dockershim

謝彥文1年前11瀏覽0評論

Docker shim是什么?Docker shim是一種輕巧的進程管理器,它負責連接Docker以及底層操作系統上正在運行的容器。

在Docker中,每個容器都有一個獨立的進程,在這個進程內部運行著容器中的應用程序。當我們啟動一個容器時,Docker Engine會創建一個進程,然后將容器內的應用程序部署到該進程中。

但是,Docker Engine并不是直接管理容器內的進程的;相反,它委派給容器的外部代理,即Docker shim。Docker shim是一個小型代理,負責兩件事情。

首先,Docker shim負責管理容器內的主進程。這意味著,每個容器內只需要有一個進程,它可以是一個應用程序或一個sh腳本。Docker shim確保這個進程一直運行,并且在進程退出時可以在容器內部做一些清理工作。

其次,Docker shim作為一個進程代理,負責與Docker Engine通信。它接收Docker Engine發送的指令,并將它們轉發到容器內的主進程。它還監聽來自容器內主進程的事件,并將這些事件報告給Docker Engine。

shim_start: docker-runc start --root /var/run/docker/runtime-runc/moby - ... 
shim_pid: 1206 
container_pid: 1216 
...
shim_exit: exit status 0

從上面的代碼中可以看出,當Docker Engine啟動一個容器時,它會調用docker-runc命令啟動進程。docker-runc是Docker shim的一個組件,它負責底層操作,例如通過Linux Namespace和Cgroups創建容器。在容器啟動后,Docker shim會將容器內主進程的PID(1206)報告給Docker Engine。

當容器停止時,Docker Engine會通知Docker shim。Docker shim會將容器內主進程的PID發送給docker-runc,并通知docker-runc關閉容器。最后,它會將退出狀態(0表示正常終止)回傳給Docker Engine。

Docker shim是Docker架構中至關重要的一部分。它是與容器內部通信的唯一途徑,也是調度容器的基石。從開發者的角度來看,了解Docker shim的工作原理和機制,可以更好地理解Docker的工作方式。