Dockerfile構建過程解析
阿新 • • 發佈:2018-11-24
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基礎知識
- 每條保留字指令都必須為大寫字母,且後面至少要跟隨一個引數;
- 指令按照從上到下順序執行;
- #表示註釋;
- 每條指令都會建立一個新的映象層,並對映象進行提交;
Dockerfile執行流程
- docker從基礎映象執行一個容器;
- 執行一條指令並對容器進行修改;
- 執行類似docker commit的操作提交一個新的映象層;
- docker再基於剛提交的映象執行一個新的容器;
- 執行Dockerfile中的下一條指令直到所有的指令執行完畢;
Dockerfile、Docker映象和Docker容器關係
從應用軟體的角度來看,Dockerfile、Docker和Docker容器分別代表軟體的三個不同階段,
- Dockerfile是軟體的原材料
- Docker映象是軟體的交付品
- Docker容器是軟體的執行態
Dockerfile面向開發,Docker映象成為交付標準,Docker容器則涉及部署與運維,三者缺一不可,合力充當Docker體系的基礎