Docker實戰(三)--Dockerfile
阿新 • • 發佈:2020-12-17
1.什麼是dockerfile
個人理解Dockerfile其實應該叫 image file,因為Dockerfile 其實是一個用來構建映象的文字檔案
FROM centos MAINTAINER zengyin<[email protected]> ENV MYPATH /usr/local WORKDIR $MYPATH RUN yum -y install vim RUN yum -y install net-tools RUN yum -y install nginx VOLUME /etc/nginx/ EXPOSE 80 CMD echo $MYPATH CMD echo "....end...." CMD /bin/bash
以上檔案其實是以centos為基礎映象,安裝vim、nginx、net-tools,並將nginx以mounts的方式對映到本地隨機生成的路徑,暴露80埠
2.常用指令
-
FROM:定製的映象都是基於 FROM 的映象,上面後續的操作都是基於 centos。
-
MAINTAINER:作者(維護者)
-
WORKDIR:指定進入容器後的預設路徑
-
RUN:用於安裝軟體包
-
COPY:複製指令,從上下文目錄中複製檔案或者目錄到容器裡指定路徑
-
ADD:ADD 指令和 COPY 的使用格式一致,會自動複製並解壓(同樣需求下,官方推薦使用 COPY)
-
CMD:用於執行程式,容器啟動後,預設
-
ENTRYPOINT:正式的容器啟動後的執行體。即:如果docker run後有東西,那麼後面的全部會被作為ENTRYPOINT的引數;如果run後面沒有,但CMD後面有,那麼CMD的內容會作為ENTRYPOINT的引數;如果要在docker run時覆蓋ENTRYPOINT,使用--entrypoint即可
-
ENV:設定環境變數,那麼在後續的指令中,就可以使用這個環境變數
-
ARG:構建引數,與 ENV 作用一至。不過作用域不一樣。ARG 設定的環境變數僅對 Dockerfile 內有效
-
VOLUME:定義匿名資料卷。在啟動容器時忘記掛載資料卷,會自動掛載到匿名卷。
-
EXPOSE:僅僅只是宣告埠
3. 構建映象
docker build -f dockerfile2 -t test/centos:3.0 .
- dockerfile2為Dockerfile的檔名
- test/centos為映象名
- 3.0為映象tag
- .為映象儲存在當前路徑