2018 -
08 / 08

2018 / 08 / 08

手把手帶你學 Docker - Images


何適宇 Matt Ho

SoftLeader R&D  |     Github


Images


1. 使用Dockerfile定義一個 Container

FROM softleader/tomcat85

RUN mkdir -p ${TOMCAT_HOME}/webapps/ROOT
RUN echo "Hello Container!" > ${TOMCAT_HOME}/webapps/ROOT/index.html

CMD $TOMCAT_HOME/bin/catalina.sh run

2. BuildDockerfileto image

# build to docker image
docker build -t mytomcat .

# let's take a deep look about layers of image
docker image inspect mytomcat

Images and layers

Images是由很多層layers組成

圖片來源 : https://docs.docker.com/storage/storagedriver/#images-and-layers


3. 在Dockerfile中做些改變

FROM softleader/tomcat85

RUN mkdir -p ${TOMCAT_HOME}/webapps/ROOT \
&& echo "Hello Container!" > ${TOMCAT_HOME}/webapps/ROOT/index.html

CMD $TOMCAT_HOME/bin/catalina.sh run

4. 重建 image 並再次檢查

docker build -t mytomcat .

docker image inspect mytomcat


Dockerfile 常用指令


  • FROM - base image
  • COPY - 複製當前目錄中的檔案到 container 中
  • ENV - 宣告變數
  • VOLUME - 宣告目錄
  • WORKDIR - 設定當前目錄
  • RUN - build layer 中執行的指令
  • CMD - container 啟動時執行的指令


  • 實作看看


    Docker build 的時候才將index.html包進去