Docker中的CMD指令是用來定義容器默認的應用程序和參數的。當我們創建一個Docker鏡像時,我們需要為該鏡像定義一個默認的應用程序,Docker就會自動執行該默認應用程序。在此之前,我們需要了解一些關于CMD指令的基本知識。
Dockerfile 中的 CMD 表示默認的容器執行命令 語法如下: CMD command param1 param2 這些參數和文件必須是該鏡像中的可執行文件 如果沒有給出 CMD,那么 Docker 將會使用鼟倉類似于 /bin/sh -c exec "$@" 的命令啟動容器。 CMD 僅僅是在容器啟動時才會執行,默認情況下,執行的命令是 /bin/sh -c,因此,CMD ["echo", "$HOME"] 最終執行的是 /bin/sh -c echo $HOME。 而 CMD echo $HOME 等價于 CMD ["echo", "$HOME"], 因為 Dockerfile 的解析器知道這個“echo”命令在哪——CMD 上下文中的第一個單詞將被視為執行命令的可執行文件或者 shell。
總之,CMD指令在Docker鏡像的構建過程中,是非常重要的一部分。在執行CMD之前需要確定默認的應用程序和參數,并且在Dockerfile中正確地指定CMD。了解了CMD的語法和定義,我們就可以更方便地構建Docker鏡像。