1. 程式人生 > >docker學習總結八

docker學習總結八

使用Dockerfile建立映象
一般Dockerfile分為四部分:基礎映象資訊、維護者資訊、映象操作指令和容器啟動時的指令
1. 指令說明

指令 說明
FROM 指定所建立映象的基礎映象
MAINTAINER 指定維護者資訊
RUN 執行命令
CMD 指定啟動容器時預設執行的命令
LABEL 指定生成映象的元資料標籤資訊
EXPOSE 宣告映象內服務所監聽的埠
ENV 指定環境變數
ADD 複製指定的<src>路徑下的內容到容器中的<dest>路徑下,<src>可以為URL;如果為tar檔案,會自動解壓到<dest>路徑下。
COPY 複製指定的<src>路徑下的內容到容器中的<dest>路徑下; 一般情況推薦使用COPY,而不是ADD
ENTRYPOINT 指定映象的預設入口
VOLUME 建立資料卷掛載點
USER 指定執行容器時的使用者名稱或UID
WORKDIR 配置工作目錄
ARG 指定映象內使用的引數(例如版本號資訊等)
ONBUILD 配置當所建立的映象作為其他映象的基礎映象時,所執行的建立操作指令
STOPSIGNAL 容器退出的訊號值
HEALTHCHECK 如何進行健康檢查
SHELL 指定使用shell時的預設shell型別

2. 建立映象
編寫完成Dockerfile之後,執行docker build命令來建立映象。
基本格式為 docker build [選項] 內容路徑
如果要制定生成映象的標籤資訊,可以使用-t選項。
docker build -t myfirstimage ./
3. 使用.dockerignore檔案


使用.dockerignore檔案(每行新增一條匹配模式)來讓Docker忽略匹配模式路徑
# comment
/temp
//temp
tmp?
~

  1. 最佳實踐
    精簡映象用途:儘量讓每個映象的用途都比較集中、單一,避免構造大而複雜、功能多的映象;
    選用合適的基礎映象:過大的基礎映象會造成生成臃腫的映象,一般推薦較為小巧的debian映象;
    提供足夠清晰的命令註釋和維護者資訊:Dockerfile也是一種程式碼,需要考慮方面後續擴充套件和其他人使用;
    正確使用版本號:使用明確的版本號資訊,如1.0,2.0,而非latest,將避免內容不一致可能引發的慘案;
    減少映象層數:如果希望所生成的映象層數儘量少,則儘量合併指令,例如多個RUN指令可以合併成一條

    及時刪除臨時檔案和快取檔案:特別是在執行apt-get指令後,/var/cache/apt下面會快取一些安裝包;
    提高生成速度: 如合理使用快取,減少內容目錄下的檔案,或使用.dockerignore檔案指定等;
    調整合理的指令順序:在開啟快取的情況下,內容不變的指令儘量放在前面,這樣可以儘量複用;
    減少外部源的干擾: 如果確實要從外部引入資料,需要指定持久的地址,並帶有版本資訊,讓他人可以重複而不出錯。****

小結:
φ(❐❐✧ 人醜就要多讀書