Docker
CMD
指令 | 描述 |
---|---|
ADD | 添加本地或遠端的檔案和目錄。 |
ARG | 於建置時所產生的變數。 |
CMD | 指定預設命令。 |
COPY | 複製檔案和目錄。 |
ENTRYPOINT | 指定執行時預設指令檔。 |
ENV | 設定環境變數。 |
EXPOSE | 描述應用程式正在監聽的埠號。 |
FROM | 從基礎映像檔創建新的建置階段。 |
HEALTHCHECK | 在啟動時檢查容器的健康狀態。 |
LABEL | 向映像檔添加元數據。 |
MAINTAINER | 指定映像檔的作者。 |
ONBUILD | 指定映像檔用於建置時的指令。 |
RUN | 執行建置指令。 |
SHELL | 設定映像檔的預設 Shell。 |
STOPSIGNAL | 指定退出容器時的系統呼叫信號。 |
USER | 設定使用者和群組 ID。 |
VOLUME | 創建卷掛載。 |
WORKDIR | 變更工作目錄,建立後都由該資料夾進行建置 |
Docker 是一塊開放式平台,目的是為了在開發上可以達到快速部屬/測試/執行
在Docker Hub上,由於 Docker 可拆分為前、中、後台程式專案及相關功能
可使用已存在的環境進行下載建置,已達到可重複且耦合性低的搭建手段
Docker 其實也是 Virtual Machine 的一種,但不同於IIS伺服器架設
Docker 可以說是取代 VM 的功能,更為輕巧,簡便的使用架設服務
為什麼呢?
因為 VM 是可執行的Operation System,可創建虛擬平台供使用者進行頁面操作
但如果僅需要運行 IIS / HTTP 等架設網站需求服務,使用龐大的VM環境就顯得臃腫龐大
Docker 的好處就是僅操作 Operation System 部份需求功能
針對所需使用的操作系統,無須浪費空間及大量的資源在用不到的功能上
根據以下步驟可大略寫出所需的Dockerfile步驟:
COPY | ADD | |
---|---|---|
支援 | 複製建置平台資料 | HTTPS / Git URLS |
動作 | 僅複製至指定位置 | 可針對Wget/tar檔解壓縮 |
今天若有一檔案須透過Http下載,且檔案為wget/tar副檔,則會建議使用ADD進行處理
若僅僅是在建置平台上,則會建議使用COPY方式操作
ARG 與 ENV 兩者皆為參數建置,前者為runtime建置參數,後者為enviroment變數
ENV的靈活度遠大於ARG的使用範圍
ENV | ARG | |
---|---|---|
使用範圍 | ADD, COPY, ENV, EXPOSE, FROM, LABEL, STOPSIGNAL, USER, VOLUME, WORKDIR, ONBUILD | FROM |
若是想於 container建置時輸入指定參數,可使用 ARG 方式取得
另外,若想要建置時可輸入特定資料,或是不輸入資料以預設值方式帶出,可搭配 ARG/ENV 同時使用
無輸入 ARG 參數,會以 v1.0.0 作為default參數使用
有輸入 ARG 參數,會以輸入的值使用,如畫面上 v2.0.8 參數使用