CMD和ENTRYPOINT是Dockerfile中定義容器啟動命令的關鍵字。
CMD用于指定容器啟動時運行的命令。可以有多個CMD指令,但只有最后一個CMD指令會生效。CMD可以包含參數,如果在運行docker run命令時指定了參數,將會覆蓋CMD中指定的參數。
ENTRYPOINT用于指定容器啟動時運行的可執行文件或腳本。和CMD一樣,只有最后一個ENTRYPOINT指令會生效。ENTRYPOINT指令不會被覆蓋,而是被附加到docker run命令的參數之前。
總結起來,CMD用于定義默認的容器啟動命令,可以被覆蓋,而ENTRYPOINT用于定義容器啟動的主要命令,不會被覆蓋。通常情況下,CMD用于提供默認的命令參數,而ENTRYPOINT用于指定容器啟動的主要命令。