ENTRYPOINT 和 CMD 都是 Dockerfile 中的指令,用于指定容器啟動時要執(zhí)行的命令。
區(qū)別如下:
ENTRYPOINT 用于指定容器啟動時要執(zhí)行的命令或程序。它的參數(shù)會被保留下來,并且可以通過 CMD 或者 docker run 命令的參數(shù)來覆蓋。
CMD 用于指定容器啟動時要執(zhí)行的命令或程序的默認參數(shù)。它的參數(shù)可以被 docker run 命令的參數(shù)覆蓋,如果在 Dockerfile 中有多個 CMD 指令,則只有最后一個 CMD 指令生效。
總結(jié):
ENTRYPOINT 是容器的入口點,定義容器啟動時要執(zhí)行的命令或程序,一般用于指定應用程序或服務的啟動命令。
CMD 是容器啟動時要執(zhí)行的命令或程序的默認參數(shù),用于定義容器運行時的默認行為。
通常情況下,ENTRYPOINT 和 CMD 可以結(jié)合使用,ENTRYPOINT 用于指定啟動命令,CMD 用于指定默認參數(shù)。這樣可以在運行容器時,可以通過傳入?yún)?shù)來覆蓋CMD指定的默認參數(shù),從而達到靈活配置容器的目的。