CMD的作用
指定啟動容器時執行的指令,每個 Dockerfile隻能有一條 CMD 指令。如果指定了多條指令,隻有最後一條會被執行。如果使用者啟動容器時候指定了運作的指令,則會覆寫掉 CMD 指定的指令。
ENDPOINT的作用
配置容器啟動後執行的指令,并且不可被 docker run 提供的參數覆寫。每個 Dockerfile 中隻能有一個 ENTRYPOINT,當指定多個時,隻有最後一個起效。
CMD和ENDPOINT的差別
1、CMD指令指定的容器啟動時指令可以被docker run指定的指令覆寫ENTRYPOINT指令指定的指令不能被覆寫,而是将docker run指定的參數當做ENTRYPOINT指定指令的參數。
2、CMD與ENTRYPOINT同時存在時,CMD指令可以為ENTRYPOINT指令設定預設參數,而且CMD可以被docker run指定的參數覆寫;