# 容器技術簡介
### 主講人:黃夙賢
---
## Container 容器
- Container中文翻譯為『容器』、『貨櫃』
- 貨櫃的特性是:標準化尺寸、可堆疊
- 虛擬機器太大、太慢,需要更小尺寸的虛擬化
- Linux恰好有這種特性,可以把應用切割成單獨的個體,稱之為Container

##### 圖片來源:[RedHat](https://developers.redhat.com/blog/2014/05/15/practical-introduction-to-docker-containers)
---
## Linux如何達成Container
- CGroup:Control Group的縮寫,用來隔離每個執行程序使用的硬體資源。例如設定記憶體上限、CPU、硬碟的使用順序
- Namespace:Linux應用Namespace來隔離應用程式。不同Namespace的程式互不影響。
- Unionfs:分層檔案結構。Linux的任何儲存檔案,可透過unionfs方式,把不同位置的檔案組合一起。類似一層一層疊上去

---
## 容器化技術
- 利用Linux的三大隔離技術,達成作業系統(OS)以上的虛擬化
- 常用在idc機房,多為Linux核心

#### 參考資料:joshhu
---
## OCI (Open Container Initiative)
- Linux Foundation 所提出的計畫,主要是希望能夠針對容器制定一個作業系統層級的標準
- 包含Runtime Spec與Image Spec
- 容器不只有Docker,CRI-O、containerd容器皆依循OCI標準

---
## CRI (Container Runtime Interface)
- Google的Kubernetes(K8s)為容器應用的平台,定義出呼叫容器的標準CRI
- Kubernetes與docker的愛恨情仇
---
{%youtube Qw-6k95IBHU %}
#### 參考資料:[圖解程式教學 Sam Tsai](https://www.youtube.com/watch?v=Qw-6k95IBHU)
---
## 容器runtime統計

#### [參考資料:Sysdig 2021](https://dig.sysdig.com/c/sysdig-2021-containe?x=HkhNjX&xs=365861)
---
## 容器生態系

#### 資料來源:[Containerd](https://containerd.io/)
---
## 容器應用統計

#### [參考資料:Sysdig 2021](https://dig.sysdig.com/c/sysdig-2021-containe?x=HkhNjX&xs=365861)
---
## 容器註冊倉庫統計

#### [參考資料:Sysdig 2021](https://dig.sysdig.com/c/sysdig-2021-containe?x=HkhNjX&xs=365861)
---
## 參考資料
- [Docker技术三大要点](https://blog.csdn.net/i042416/article/details/85161108)
- [一文搞懂容器运行时 Containerd](https://www.qikqiak.com/post/containerd-usage/)
- [Docker的前世今生(joshhu)](https://joshhu.gitbooks.io/docker_theory_install/content/index.html)
---
{"metaMigratedAt":"2023-06-17T18:23:29.811Z","metaMigratedFrom":"YAML","title":"容器技術簡介","breaks":true,"contributors":"[{\"id\":\"ef0225b9-6c2a-4012-82c9-fa1031d2c4db\",\"add\":2230,\"del\":214}]"}