溫馨提示×

docker的cmd與entrypoint有什么區別

小億
156
2023-07-07 00:50:56
欄目: 編程語言

在Docker中,CMDENTRYPOINT都是用于指定容器啟動時要執行的命令或腳本。它們之間的區別如下:

  1. CMDCMD用于指定容器啟動時要執行的命令。它可以有三種不同的形式:
  • CMD ["executable","param1","param2"](使用JSON數組形式):推薦使用這種形式,它會直接執行指定的可執行文件,并傳遞參數。

  • CMD command param1 param2(使用命令形式):這種形式會將命令傳遞給shell進行解釋執行。

  • CMD ["param1","param2"](使用JSON數組形式):這種形式會將指定的參數傳遞給ENTRYPOINT指定的可執行文件。

在Dockerfile中,可以使用多個CMD指令,但只有最后一個CMD指令會生效。如果容器啟動時沒有指定要執行的命令,將會執行最后一個CMD指令中指定的命令。

  1. ENTRYPOINTENTRYPOINT用于指定容器啟動時要執行的可執行文件。它可以有兩種不同的形式:
  • ENTRYPOINT ["executable", "param1", "param2"](使用JSON數組形式):推薦使用這種形式,它會直接執行指定的可執行文件,并傳遞參數。

  • ENTRYPOINT command param1 param2(使用命令形式):這種形式會將命令傳遞給shell進行解釋執行。

在Dockerfile中,只能使用一個ENTRYPOINT指令。如果同時存在CMD指令,CMD中的參數將會作為ENTRYPOINT指定的可執行文件的參數進行傳遞。

總的來說,CMD用于指定容器啟動時要執行的命令參數,而ENTRYPOINT用于指定容器啟動時要執行的可執行文件??梢詫?code>ENTRYPOINT看作是容器的入口點,而CMD則是對ENTRYPOINT指定的可執行文件的參數進行補充。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女