---
# System prepended metadata

title: Dockershim
tags: [k8s]

---

Dockershim
=======
###### tags: `k8s`

:::success
The Dockershim is the CRI compliant layer between the Kubelet and the Docker daemon.
:::

![](https://i.imgur.com/jQb8L1s.png)


![](https://i.imgur.com/Zw7Ws0H.png)

+ ***CRI***: container runtime interface
+ ***OCI***: open container initiative


![](https://i.imgur.com/y0UjeCJ.png)
1. kubelet 透過 `Dockershim` `與 docker engine 連接，最後一路串接到 containerd 來創建 container。
2. 繞過 Docker 直接與後端的 `Containerd` 溝通，為了滿足這個需求也需要一個額外的應用程式 CRI-Containerd 來作為中間溝通的橋樑
3. 隨者 containerd 1.1 版本的發行， CRI-Containerd 本身的功能已經可以透過 `plugin` 的方式實現於 containerd 中，可以再少掉一層溝通的耗損，這也是上一篇所介紹的安裝環境。
4. `cri-o`， 一個完全針對 kubernetes 需求的解決方案，讓整體的溝通變得更快速與簡單。
    + 目的就是要提供更好地整合，減少多餘的 `IPC` 溝通


## references
+ Containerd ***1.0*** - CRI-Containerd (end of life) 
    ![](https://i.imgur.com/pz1Mjok.png =350x)
+ Containerd ***1.1*** - CRI Plugin (current) 
    ![](https://i.imgur.com/c3d0yPM.png =350x)
