一隻箱子裡的貓,看著電腦螢幕

Schrödinger's Programmer

奔跑吧工程師,趁年輕跑得越遠越好

Docker 筆記 1 - 認識 Docker

介紹什麼是 Docker,以及容器化技術

Ray

容器化可以隔離不同環境,將環境打包後工程師可以專注開發,不用花過多心力在開發環境安裝上
而 Docker 是目前非常成熟且流行的一個容器化技術

將OS做為 Application 化
所有 container 只能允許一個指令執行
預設權限都會是 root

商業來說

  • 方便部署
  • 可攜性

容器進化史

What is a Container?

名詞介紹

  • 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 的秘密(空間)
    • 等同本機空間

架構

生命週期

  1. client 呼叫 docker daemon
  2. docker daemon 與 host network / host cgroups 溝通
  3. 判斷 docker container 是否存在
  4. 從 local image 將 layer 解開
  5. 如果 local image 不存在的話從 repository 拿
  6. 建立 docker container

學習資源

線上練習環境:Play with Docker

Docker 基本觀念與使用教學:自行建立 Docker 影像檔 - G. T. Wang

鸟瞰Docker

30 天與鯨魚先生做好朋友

最新文章

Category

Tag