docker,containerd,runc,docker-shim之间的关系
關(guān)于containerd
關(guān)于containerd的一些詳解介紹,請參考containerd的官網(wǎng):(https://containerd.io/)
關(guān)于docker
docker本身而言包括了,docker client和dockerd(docker daemon),dockerd本身實(shí)屬是對容器相關(guān)操作的api的最上層封裝,
直接面向操作用戶。
關(guān)于docker1.12.x
該版本的docker由 docker-client ,dockerd,containerd,docker-shim,runc組成,現(xiàn)在來談?wù)劽總€(gè)組件是用來干嘛的:
dockerd
dockerd本身實(shí)屬是對容器相關(guān)操作的api的最上層封裝,直接面向操作用戶。
containerd
dockerd實(shí)際真實(shí)調(diào)用的還是containerd的api接口(rpc方式實(shí)現(xiàn)),containerd是dockerd和runc之間的一個(gè)中間交流組件。
docker-shim
docker-shim是一個(gè)真實(shí)運(yùn)行的容器的真實(shí)墊片載體,每啟動一個(gè)容器都會起一個(gè)新的docker-shim的一個(gè)進(jìn)程,
他直接通過指定的三個(gè)參數(shù):容器id,boundle目錄(containerd的對應(yīng)某個(gè)容器生成的目錄,一般位于:/var/run/docker/libcontainerd/containerID),
運(yùn)行是二進(jìn)制(默認(rèn)為runc)來調(diào)用runc的api創(chuàng)建一個(gè)容器(比如創(chuàng)建容器:最后拼裝的命令如下:runc create 。。。。。)
runc
runc是一個(gè)命令行工具端,他根據(jù)oci(開放容器組織)的標(biāo)準(zhǔn)來創(chuàng)建和運(yùn)行容器。
他們之間的關(guān)系如下圖:
總結(jié)
以上是生活随笔為你收集整理的docker,containerd,runc,docker-shim之间的关系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scala模拟Spark分布式计算流程示
- 下一篇: Scala Array中_ filter