如何使用DockerFile檔案生成映象
技術標籤:docker容器化技術docker
如何使用DockerFile檔案生成映象
DockerFile引數含義
-
FROM:指定建立映象的基礎映象
-
MAINTAINER:Dockerfile作者資訊
-
ADD 指令和 COPY 的使用格式一致(同樣需求下,官方推薦使用 COPY)
COPY:複製指令,從上下文目錄中複製檔案或者目錄到容器裡指定路徑
ADD :在原始檔為 tar 壓縮檔案的話,壓縮格式為 gzip, bzip2 以及 xz 的情況下,會自動複製並解壓到 目標路徑
-
ENV:設定環境變數,定義了環境變數,那麼在後續的指令中,就可以使用這個環境變數,這個變數是全域性性的在容器中可以直接列印 echo $ENVIRONMENT
-
ARG: 與 ENV 作用域不一樣。ARG 設定的環境變數僅對 Dockerfile 內有效,構建好的映象內不存在此環境變數
-
WORKDIR:指定工作目錄。用 WORKDIR 指定的工作目錄
-
RUN和CMD類似
RUN:執行Linux系統的命令使用,在 docker build時執行
CMD 在docker run 時執行,如果 Dockerfile 中如果存在多個 CMD 指令,僅最後一個生效,較少使用
-
ENTRYPOINT:指定執行容器啟動過程執行命令
DockerFile樣例
FROM jfrog.test.com.cn/dev7-docker-/java_base (公司設定的基礎映象,根據個人設定)
WORKDIR /opt/portfolio-mgt (切換到映象容器中的指定目錄中相當於cd)
COPY target/portfolio-mgt-core-*.jar app.jar (複製宿主機資料到映象內部使用)
ENV JAVA_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -XshowSettings:vm" (設定環境變數引數)
ENV ENVIRONMENT="dev"
RUN echo "ENV is $ENVIRONMENT , JAVA_OPTS is $JAVA_OPTS $JAVA_DEBUG_OPTS"
ENTRYPOINT exec java $JAVA_OPTS -Denv=$ENVIRONMENT -jar /opt/app.jar(指定執行容器啟動過程執行命令)
如何使用DockerFile生成映象檔案
1、使用docker build進行映象的構建
將DockerFile檔案和springboot專案的jar放到同一目錄下直接使用:
docker build -t nginx:v3 .
nginx:v3為構建的映象名稱,一般是(映象名稱:映象標籤)
注意後邊有個點,如果dockerfile和jar不在同一目錄下時,需要使用-f指定dockerfile檔案路徑
2、在docker執行時比如上傳了檔案,是上傳到docker容器目錄裡,把容器刪掉後文件丟失,因此需要將docker中的檔案存放目錄掛載到宿主機。
docker run 時使用-v引數指定掛載目錄
docker run -v (宿主機目錄 :docker中的目錄) 其他執行的引數接著加上就好
2021年的第一篇部落格,哈哈