weic2015 docker
TRANSCRIPT
/ME {
Name : Ray Lin, B.S. : CCU MIS102, M.S. : NTHU ISA - System Software Lab, Position : [
Student,Prospective front-end engineer of Mozilla
] }
1分鐘快速調查• 有⼈人了解或曾聽過 ___________ ?
• 軟體⼯工程 - e.g. CI, CD …
• 雲端(計算) - e.g. IaaS, PaaS, SaaS …
• 虛擬(化)機 - e.g. VMWare, VirtualBox …
• Docker
⼤大綱• 認識 Docker
• Docker 與 雲端
• Docker 可以怎麼幫助學⽣生的你
• DEMO
• Docker 安裝 / 基本操作
• Q & A
認識 DOCKER
BUILD, SHIP AND RUN ANY APP, ANY WHERE
來⾃自地獄的矩陣
類⽐比⽣生活中的例⼦子
回到地獄的矩陣
認識 DOCKER • Docker is an open platform for developers and sysadmins to build,
ship, and run distributed applications.
• 容器(Container)為基礎,輕量的虛擬化 (?)
• 120⼈人公司,但拿了 $95M D輪投資
• Github 20k 以上的 star 數
• ⼤大家都拿他來跟 Virtual Machine ⽐比較
• Written in Golang but Linux Only (Current)
DOCKER V.S. VM
Server
Host OS
Docker Engine
Bins / Libs
App A
Server
Host OS
Hypervisor
Guest OS Guest OS
Bins / Libs Bins / Libs
App A App B
Bins / Libs
App CApp B
Docker VM
DOCKER 的魔法• Layered Filesystem - 分層式檔案系統
• Image - 唯獨 / 便攜 有如映像檔
• Repository - 公/私集中式 Image 管理
• Container - Linux 虛擬化的 Tricks
• LXC / cgroup / namespace / chroot
• 將所有東⻄西整合起來的魅⼒力......
DOCKER HUB
DOCKER HUB
• Git 想到 Github , Docker 也要想到 Docker Hub
• 集中式的 Image 管理服務
• 版本管理 (tag)
• 社群⼒力量
印象 > 抽象
DOCKER 與 雲端
雲端基本特徵• 隨需應變⾃自助服務
• 隨時隨地⽤用任何網路裝置存取
• 多⼈人共享資源池
• 快速重新部署靈活度
• 可被監控與量測的服務
• 基於虛擬化技術快速部署資源或獲得服務
• 減少⽤用⼾戶終端的處理負擔
• 降低了⽤用⼾戶對於IT專業知識的依賴
為 DOCKER ⽽而⽣生的 OS
• CoreOS
• Atomic
• Snappy
• Photon
DOCKER 叢集管理⼯工具
• Kubernetes (by Google)
• shipyard
• swarm (by Docker)
• origin (by RedHat)
對雲端的衝擊• Google / Microsoft 擁抱 Docker
• Microsoft 積極搶攻 Docker 在 Windows 的⽀支援度
• OpenStack 增加 Docker ⽀支援
• 更多衝擊正在產⽣生中....
DOCKER 可以怎麼幫助還是學⽣生的你?
從切⽣生⿂魚⽚片開始
開發環境 / ⼤大⼀一⼆二• 那些被 版本 惡搞的⽇日⼦子
• gcc /JRE / PHP
• ⼀一台機器如何裝兩個版本的 JRE / gcc/ MySQL 呢?
• ⼤大⼆二那年吳凡⽼老師的 Java 作業...
• os: 真他x的難啊
整合與部署 / ⼤大三四• ⼀一起 合作 專題的⽇日⼦子
• 你的 code / 我的環境 / 學校的機器
• 兩個⼩小故事
• 模組分⼯工合作
• 展覽部署
擴充與⾼高可⽤用性 / 碩⼠士UP
• 當服務不再是玩具
• 穩定 / ⾼高負載 / ⾼高可⽤用 / 災難回復 / 故障轉移
• ⽼老闆的幻想
…
Q & A
DOCKER 安裝 / 基本操作• 推薦使⽤用 Ubuntu 14.04 以上
• ⼀一條指令:
• $ wget -qO- https://get.docker.com/ | sh
• 其他 Distri 也可以裝.Mac / Windows 有 DVM / Boot2Docker 可⽤用
DOCKER PULL / RUN• 從 Docker Hub 上抓取現有的 Image ⾄至 Local
• $ docker pull [OPTIONS] NAME[:TAG|@DIGEST]
• 起動 Local 的 Image
• $ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
DOCKER BUILD• 幾個 Instructions
• ENV / ADD/ COPY / WORKDIR / EXPOSE/ VOLUME / USER
• ENTRYPOINT / CMD
• 稍微複雜⼀一點... 直接看 DEMO 吧
DOCKER SAVE / LOAD
• 將存在 Local 的 Image 匯出成壓縮檔
• docker save [OPTIONS] IMAGE [IMAGE…]
• 將壓縮檔 匯⼊入
• docker load [OPTIONS]
Q & A