Docker中(高)階一日工作坊Part1

Michael.K

來自台北

來回快五小時車程

(共600公里的距離...)

如果有回饋我會很開心的

感謝以下單位

HWD友情播出

開始之前

講一下大綱以及注意事項

關於第一部份

  • Docker(容器)進化史
  • Docker架構以及生命週期
  • Docker名詞介紹
  • 關於安裝

先介紹歷史

Container歷史談

  • 1979 chroot
  • 2000 FreeBSD jail
  • 2004 Solaris Zones
  • 2008 LXC
  • 2013 Docker
  • 2016 Windows Container

Docker = OS App

You should to know

在docker 1.10前

  • 依賴LXC、libvirt、systemd-nspawn
  • LXC還是需要一個較完整的VM

在docker 1.10(含)後

  • libcontainer
  • 完全擺脫LXC的依賴
  • 全部由golang打造
  • 需要linux kernel 3.10(所以CentOS不一定能用)

解釋名詞: stateful

Docker相關名詞

Repository

  • 就像是apt、brew或是yum的來源一樣
  • 存了很多image (Package)

Image

  • 相當於Package
  • 有多個layer(層),每個layer都紀錄了檔案資料
  • 每一層的layer都有一個特殊的hash
  • 這個hash可能可以在不同image出現

Container

  • 由image建立而成
  • 相當於一個一個的程式
  • 必須要有一個foreground在跑的程式

Network

  • 主要分為幾種
    • none
    • bridge
    • overlay
    • container
    • host

Volume

  • docker內的持久化(stateful)空間
  • 等同本機空間

docker生命週期

  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

關於安裝

建議不要Windows

關於安裝在Windows

  • Windows Hyper-V
  • Windows
    • Enterprise
    • Education
    • Professional

上次遇到的情況

  • Windows 7
  • WIndows XP
  • Windows 10 Home
  • 主機板不支援

相依Linux Kernel

請使用3.10+

千萬不要用apt / yum安裝

curl https://get.docker.com | bash

但是我不會建議這樣做

lmgfy: docker edge mac

安裝示範

Made with Slides.com