dockerfile文件中命令詳解

FROM:指定基礎鏡像,比如你要創建一個springboot項目的鏡像,那麼就需要jre作爲基礎鏡像;

查找需要的基礎鏡像的方法:docker serch xxxx  或者去docker hub上查找;

 

RUN:構建容器運行的命令,格式有兩種:

1)RUN ['execuable','param1','param2']

2)RUN <command>

 

CMD:容器啓動時要執行的命令

CMD["SH","-c","echo $HOME"]

CMD command param1 parma2 

第一中格式的命令,參數都用雙引號

 

MAINTAINR:指定作者,就是這個dockerfile是誰編寫的;

 

EXPOSE:暴露容器運行時的監聽端口給外部;

 

ENV:設置環境變量 ;

語法有兩種:ENV <key> ..<value>   只能設置一個值

ENV <key>=<value>.....   可以設置多個值

 

ADD:一個複製命令,把文件複製到鏡像中:

命令格式: ADD <src> <src>

ADD ["<src>",...."<dest>"]

<dest>路徑的填寫可以是容器內的絕對路徑,也可以是相對於工作的目錄的相對路徑

<src> 可以是一個本地的文件或者壓縮包,還可以是一個url

 

COPY:  COPY與ADD一致,唯一的區別就是<src>只能是本地的文件 

 

ENTRYPOINT:與CMD命令很像,都是在容器啓動時執行命令,但是與CMD還是有一些區別:

相同點:

只能寫一條,如果寫了多條,那麼只有最後一條生效

啓動容器才執行

不同點:

ENTRYPOINT不會被Command覆蓋,CMD會被覆蓋;

但是如果docker run 的-entrypoint會覆蓋ENTRYPOINT命令

任何docker run 設置的命令參數或CMD指令命令,都將作爲ENTRYPOINT指令的命令參數,追加到ENTRYPOINT指令的命令之後

例如:

ENTRYPOINT ["top","-b", "-H"]

在執行docker run <container-name> -v 啓動容器則容器執行的命令就是 top -b -v

 

VOLUME:掛載目錄;

將本地文件夾或者其他容器的文件夾掛載到當前容器下

語法: volume ["/data"]

使用場景一般是需要持久化數據,比如數據庫;

 

WORKDIR:設置工作目錄;

WORKDIR /path/dir

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章