基本的 Docker概念、Dockerfile和docker-compose.yml的部分差不多結束了,再進入kubernetes之前,先讓我們複習一下吧!
Docker 是由 dotCloud 這間 PaaS 公司利用 go 語言編寫的虛擬化軟體,於2013年開源(repo在moby專案下),因為容器化和微服務的興起和受歡迎,讓他為各大專案利用,也是 K8s的基石之一。
相較於VM(虛擬機器),Docker 有著以下特點:
可以在docker.io ,docker的官方網站下載,安裝過程記得 hyper-V 和 WSL2 的選項要勾,其他過程便不再贅述。
Image 的內容包含了建立一個虛擬環境需要用到的映像內容、腳本、相依元件和一些其他的二進位檔案,我們可以透過撰寫dockerfile來建立自己的映像檔,並上傳到docker hub等的倉庫 (registry) 中;Container,則是在宿主機器上正在執行image的個體,我們可以透過docker-compose.yml來讓多個Container在同一個網路環境溝通、使用同一個卷宗儲存資料。
FROM
:映像檔都是在一個映像上進行疊加 layer,形成新的映像,利用 FROM
可以指定使用的 base ImageRUN
:執行指令COPY
、ADD
:複製檔案、或新增檔案到容器中CMD
:為container架設完之後執行的第一行指令,一個 stage 也只能有一條 CMD
存在
啟動容器時,我們會使用docker run -<參數>
來啟動容器,但若是我們要一次啟用多個容器,下多個docker run 指令便很不實際,若要配置網路、volume,那就會顯得更為麻煩,此時,我們便可以利用 Compose 工具來連續啟動多個container,並配置volume和networks 空間
因為昨天才剛打完就打個結語就好
top-level有四個部分,其中 version
、service
為必須,networks和volumes則看實際情形使用
以上就是基本的docker,明天就會開始步入k8s的部分囉!