天天看點

RUN vs CMD vs ENTRYPOINT - 每天5分鐘玩轉 Docker 容器技術(17)

RUN、CMD 和 ENTRYPOINT 這三個 Dockerfile 指令看上去很類似,很容易混淆。本節将通過實踐詳細讨論它們的差別。

簡單的說:

RUN 執行指令并建立新的鏡像層,RUN 經常用于安裝軟體包。

CMD 設定容器啟動後預設執行的指令及其參數,但 CMD 能夠被 <code>docker run</code> 後面跟的指令行參數替換。

ENTRYPOINT 配置容器啟動時運作的指令。

下面我們詳細分析。

Shell 和 Exec 格式

我們可用兩種方式指定 RUN、CMD 和 ENTRYPOINT 要運作的指令:Shell 格式和 Exec 格式,