Docker CMD(命令)和 ARGS(參數)使用整理

Docker CMD(命令)和 ARGS(參數)使用整理

總覽

K8S集羣建立Pod時,能夠爲其下的容器設置啓動時要執行的命令及其參數。設置命令,就填寫在配置文件的command字段下,若是要設置命令的參數,就填寫在配置文件的args字段下。一旦Pod建立完成,該命令及其入參沒法再進行更改。app

配置文件中設置了容器啓動時要執行的命令及其參數,那麼容器鏡像中自帶的命令 與參數將會被覆蓋而再也不執行。若是配置文件中只是設置了入參,卻沒有設置其對應的命令,那麼容器鏡像中自帶的命令會使用該新參數做爲其執行時的參數。ide

Docker 與 Kubernetes中對應的字段名稱。

描述 Docker 字段名稱 Kubernetes 字段名稱
容器運行的命令 Entrypoint command
傳遞給命令的參數集合 Cmd args

規則

若是要覆蓋默認的 Entrypoint 與 Cmd,須要遵循以下規則:get

若是在容器配置中沒有設置command 或者 args,那麼將使用Docker鏡像自帶的命 令及其入參。kubernetes

若是在容器配置中只設置了command可是沒有設置args,那麼容器啓動時只會執行該 命令,Docker鏡像中自帶的命令及其入參會被忽略。it

若是在容器配置中只設置了args,那麼Docker鏡像中自帶的命令會使用該新入參做爲 其執行時的入參。io

若是在容器配置中同時設置了command 與 args,那麼Docker鏡像中自帶的命令及 其入參會被忽略。容器啓動時只會執行配置中設置的命令,並使用配置中設置的入參做爲 命令的入參。table

參考答案:

https://kubernetes.io/zh/docs/tasks/inject-data-application/define-command-argument-container/class

相關文章
相關標籤/搜索