1. 程式人生 > >Dockerfile構建過程解析

Dockerfile構建過程解析

centos7的Dockerfile

FROM scratch
ADD centos-7-docker.tar.xz /

LABEL org.label-schema.schema-version="1.0" \
    org.label-schema.name="CentOS Base Image" \
    org.label-schema.vendor="CentOS" \
    org.label-schema.license="GPLv2" \
    org.label-schema.build-date="20181006"

CMD ["/bin/bash"]

Dockerfile基礎知識

  1. 每條保留字指令都必須為大寫字母,且後面至少要跟隨一個引數;
  2. 指令按照從上到下順序執行;
  3. #表示註釋;
  4. 每條指令都會建立一個新的映象層,並對映象進行提交;

Dockerfile執行流程

  1. docker從基礎映象執行一個容器;
  2. 執行一條指令並對容器進行修改;
  3. 執行類似docker commit的操作提交一個新的映象層;
  4. docker再基於剛提交的映象執行一個新的容器;
  5. 執行Dockerfile中的下一條指令直到所有的指令執行完畢;

Dockerfile、Docker映象和Docker容器關係

從應用軟體的角度來看,Dockerfile、Docker和Docker容器分別代表軟體的三個不同階段,

  • Dockerfile是軟體的原材料
  • Docker映象是軟體的交付品
  • Docker容器是軟體的執行態
    Dockerfile面向開發,Docker映象成為交付標準,Docker容器則涉及部署與運維,三者缺一不可,合力充當Docker體系的基礎
    在這裡插入圖片描述