Docker
10/28 8:00pm at I1-107
Deploy your app with container
About Me
ppodds, PP
中央資工 大二
GDSC 21 - 22 Core Team (NCU)
事務組工讀生
2021 新生知訊網 程設組組員
中央創遊 滑水仔
Agenda
❏Docker Introduction
❏Docker CLI
❏Deploy An App
❏Docker Compose
❏Docker VSCode Extension
• 一個容器虛擬化軟體
• 管理image和container
• 快速地建立、測試和部署應用程式
What Is Docker
Docker Image
有點像是磁碟映像檔(read-only)
會被Container當成模板來建立Container
可以用Dockerfile來設定建立image的流程
實際上有點像在堆積木把最後的image堆起來
AKA 映像
Docker Container
程式真正執行的環境,相互被隔離(但可以通訊)
啟動後可以修改內容,不過不會保存(除非你掛Volume)
用來建立服務或是跑app很方便
有獨立的環境不會被宿主機影響,省去環境架設麻煩
AKA 容器
Read/Writer
Container
Init (Read Only)
Image (Read Only)
More Behind Docker
• 根據不同作業系統實作
• Linux
• Linux Namespaces - 系統環境隔離 Network、PID...
• Linux Cgroup - 系統資源管理 CPU、RAM…
• Windows
• Hyper-V
• 骨子裡還是用Linux Kernal給的功能
More Behind Docker
From Wiki
More About Docker
• bridge - 預設值,網路橋接(流量轉發)
• host - 不隔離container的網路,直接接在主機上
• macvlan - 分配mac給container,模擬物理裝置
• overlay - 可以讓不同主機之間的container連線
• none - 關閉container的網路功能
overlay network reference:
https://ithelp.ithome.com.tw/articles/10193708
Network
More About Docker
• 允許container的資料被長期保存
• 避免container刪除後資料全部消失
• 可應用在建立程式執行環境上
實作方式
1. 把主機路徑上的硬碟掛到container上
2. 在Docker的管理下建立Volume,再丟給container使用
Volume
Docker Daemon
• Docker真正做事的部分
• 在系統上長期運作,並提供API給其他程式操作
• 底層架構都在這邊
Docker Client
• 提供CLI介面操作Docker
• 依靠API對Docker Daemon操作
Difference Between VM And Container
• VM
• 需要完整的作業系統
• 所需空間大
• 完全隔離系統資源
• Container
• 不需要完整的作業系統
• 所需空間小
• 底層還是在作業系統上跑
Why Docker?
• 部屬快
• 靈活配置環境且和宿主機隔離
• 啟動速度快
• 可以配合VM做應用
Docker Registry
• 用來存放Docker image
• 可以從雲端上面下載需要的image用
Docker Hub
• 官方提供的Docker Registry
• 可以下載多數人發布的image
• 找不到image的話Docker預設來這邊載
• 有很多官方image可以用
Install Docker
https://www.docker.com/get-started
Do By Yourself!
Your Halloween Gift!
Let Docker more easy
Docker VS Code Extension
Let Docker more easy
Docker VS Code Extension
• 用圖形化介面和Docker互動
• 快速檢視主機的Docker活動
• 可以直接瀏覽和下載Container檔案
• 可以用連線進入主機上的Container
• 直接用VS Code在Container內改程式
Docker超好用
- ppodds
按讚、訂閱、開啟小鈴鐺
還有表單記得填!
Contact Us
National Central University

Docker