您好,登錄后才能下訂單哦!
本篇內容介紹了“Dockerfile基礎命令有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
FROM - 基于基準鏡像
FROM centos #制作基準鏡像(基于centos:latest) FROM scratch #不依賴任何基準鏡像 (base image),從零構建 FROM tomcat:9.0.22-jdk8-openjdk
LABEL & MAINTAINER - 說明信息
MAINTAINER 3337777777.com #個人或機構名稱 LABEL version="1.0" LABEL description="三分天注定,七分靠打拼"
WORKDIR - 設置工作目錄
WORKDIR /usr/local WORKDIR /usr/local/newdir #目標目錄不存在,會自動創建 #盡量使用絕對路徑
ADD & COPY - 復制文件
ADD hello / #復制到跟路徑 ADD test.tar.gz / #添加到更目錄并解壓 #ADD 除了復制,還具備添加遠程文件功能
ENV - 設置環境常量
ENV JAVA_HOME /usr/local/openjdk8 RUN ${JAVA_HOME}/bin/java -jar test.jar #盡量使用環境常量,可提高程序維護性
RUN & CMD & ENTRYPOINT
RUN:在Build構建時執行命令
ENTRYPOINT:容器啟動時執行的命令
CMD:容器啟動后執行默認的命令或參數
區別:不同執行時機
RUN - 構建時運行
RUN yum install -y vim #shell命令格式 RUN ["yum","install","-y","vim"] #exec命令格式
為什么Docker要為RUN采用兩種書寫格式呢?
這涉及到linux系統的一些底層原理。
Shell運行方式
Exec運行方式
使用Exec方式,會用Exec進程替換當前進程,并且保持PID不變;
執行完畢,直接退出,并不會退回之前的進程環境。
=>
在不清楚使用哪種方式的情況下,推薦使用Exec格式。
ENTRYPOINT - 啟動命令
ENTRYPOINT(入口點)用于在容器啟動時執行命令
Dockerfile中只有最后一個ENTRYPOINT會被執行
ENTRYPOINT ["ps"] #推薦使用Exec格式
CMD - 默認命令
CMD用于設置默認執行的命令
如Dockerfile中出現多個CMD,則只有最后一個執行
如容器啟動時附加指令,則CMD被忽略
CMD ["ps","-ef"] #推薦使用Exec格式
ENTRYPOINT和CMD聯合使用
FROM centos ENTRYPOINT ["ps"] CMD ["-ef"] #這時ENTRYPOINT會和CMD聯合使用 ps -ef
“Dockerfile基礎命令有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。