Docker 筆記 1 - 認識 Docker
介紹什麼是 Docker,以及容器化技術
容器化可以隔離不同環境,將環境打包後工程師可以專注開發,不用花過多心力在開發環境安裝上
而 Docker 是目前非常成熟且流行的一個容器化技術
將OS做為 Application 化
所有 container 只能允許一個指令執行
預設權限都會是 root
商業來說
- 方便部署
- 可攜性
容器進化史
名詞介紹
- Stateful
- Stateless:在未設的前提之下,每次建立時會消除舊的資料
- Repository
- 就像是 apt、brew 或是 yum 的來源一樣
- 存了很多 image (Package)
- Image
- 相當於 Package
- 產生特殊的 cache,本地有 cache 的話,就不需再從 Respository (如 Docker hub) 抓
- Container
- 由 image 建立而成
- 相當於一個一個的程式,可以持續執行
- 必須要有一個 foreground 在跑的程式
- Network
- none:沒有網路
- bridge:區網
- overlay:不同網段
- container:Docker 預設的網路連線, 無法由外部直接進來
- host:與本機共用網路介面
- Volume
- Docker 內的持久化(Stateful)空間,可以 stateful 的秘密(空間)
- 等同本機空間
架構
生命週期
- client 呼叫 docker daemon
- docker daemon 與 host network / host cgroups 溝通
- 判斷 docker container 是否存在
- 從 local image 將 layer 解開
- 如果 local image 不存在的話從 repository 拿
- 建立 docker container
學習資源
線上練習環境:Play with Docker