Docker小試身手
本文最後更新於:2023年9月11日 下午
趁著課餘零碎時間,小玩一下 Docker,主要參考以下 tutorial
A Docker Tutorial for Beginners (docker-curriculum.com)
學到了
- 如何部屬靜態網站
- 如何建立自己的 image daphne61221/catnip - Docker Image | Docker Hub
- 如何部屬到 AWS 上
- 如何處理多個 container 的環境
當然還有更進階複雜的用法,但現在沒有使用場景,以後再學 d(`・∀・)b
Docker 採用了主從式架構(client-server model)。在Docker的世界裡,分別稱為 Docker Client 與 Docker Daemon (server)·Docker Client 負責發布命令,Docker Daemon 則是依照命令執行任務,就是操作下面三個元件:
■映像檔(image) ■容器(container) ■倉庫(registry)
images: 映像檔,唯讀
container 容器
基於 image 可以建立出 Container。
它的概念像是建立一個可讀寫內容的外層,蓋在image 上。
實際存取container 會經過可讀寫層與image,因此運行container時,看到 的檔案系統會是兩者合併後的結果。
以圖2—1的示意圖為例,image層已有/bin、/etc與/var 等目錄。執行container的過程中,新增了 兩個目錄或檔案為/usr/local/app與/var/log/app,實際在觀察檔案 時,會看到兩者合併的結果,也就是右半邊的目錄示意列表。
registry 倉庫
Registry是存放image的空間。
Docker 存放image的設計方法,很像分散式版本控制。而分散式架構就會有類似git的pull/push 指令與行為,Docker也有對應的pull/push指令,實際做的事也跟 git類似:跟遠端的 registry同步。 目前Docker 預設下載的 registry為 Docker Hub,大多數程式環境或 服務都能在上面找得到image。