Dockerfile(5) - CMD 指令詳解

CMD

指定容器默認執行的命令

#  exec 形式,推薦
CMD ["executable","param1","param2"]
CMD ["可執行命令", "參數1", "參數2"...]

# 作爲ENTRYPOINT的默認參數
CMD ["param1","param2"]

# shell
CMD 命令 param1 param2
 

  

重點

  • 一個 Dockerfile 只有一個 CMD 指令,若有多個,只有最後一個 CMD 指令生效
  • CMD 主要目的:爲容器提供默認執行的命令,這個默認值可以包含可執行文件
  • 也可以不包含可執行文件,意味着必須指定 ENTRYPOINT 指令(第二種寫法)

 

exec 模式下使用環境變量

# 錯誤寫法,不會使用 HOME 環境變量
CMD [ "echo", "$HOME" ]

# 正確寫法,需要將 echo 和使用環境變量放一起
CMD [ "sh", "-c", "echo $HOME" ]

 

RUN 和 CMD

  • RUN 可以在構建階段運行很多個命令,而且每運行一個命令都會單獨提交結果
  • CMD 在構建階段執行任何操作,而是指定鏡像默認執行的命令

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章