1. 程式人生 > 其它 >容器技術-Dockerfile指令總結

容器技術-Dockerfile指令總結

技術標籤:dockerdocker

一、關於執行命令方面

https://www.jianshu.com/p/004bb28593a5

1 RUN 和 CMD

1.1 RUN 是在構建一個映象時,在構建過程中的容器內執行的命令,並提交結果。

每個 RUN 指令都會給目前正在建立的映象增加一層。

1.2 CMD 是當使用一個映象執行為一個容器的時候預設執行的命令。

CMD指令在構建時不執行任何操作,只是為執行一個容器時,提供一個預設執行的命令。
一個映象中只能有一個 CMD 指令,多個的話,最後一個生效。
其指定的命令可以被執行一個容器時指定的命令所覆蓋

比如
映象中的 CMD 為:
CMD ["/bin/bash"]

假設執行容器時:

docker run   -it   centos    ls  /tmp

那就是執行 ls /tmp 命令

二、關於檔案方面

1 COPY 和 ADD

兩者都是把宿主機的檔案複製到容器中的

1.1 COPY 是官方比較推薦的做法。

原路徑 支援萬用字元
保留原始檔的元資料

1.2 ADD 支援自動解壓,但是會導致構建映象時的快取失效,從而影響構建的效率

三、關於容器資料持久化方面

關於使用資料卷和掛載主機目錄的提示

如果將空卷掛載到容器中的含有內容的目錄中,則會將這些內容複製到卷中。同樣,如果您啟動容器並指定一個尚不存在的卷,則會為您建立一個空卷。

如果將一個bind mount 或非空的資料卷 掛載到容器中的一個非空目錄中,則這些內容會被遮蓋隱藏。隱藏的內容不會被刪除或更改,此時也不可被訪問。就像在 Linux 機器中使用 mount 命令一樣的效果