如何向 Docker 容器傳遞引數

2021-08-18 01:48:16 字數 637 閱讀 5948

我們在執行 docker 映象時希望能用下面的命令向容器傳遞命令列引數

docker run arg1 arg2

docker run arg1 arg2

其實只有第一種形式,緊隨映象名後那個總是乙個命令,其後才是引數。如果要向 docker 容器傳遞引數時,dockerfile 該如何寫,這就有必要稍稍了解一下 dockerfile 中  cmd 和 entrypoint 這兩個指令,並且它們有 exec 和 shell 兩種格式的寫法。詳情請見上篇 dockerfile 中命令的兩種書寫方式的區別。

對於乙個 docker 映象,我們可以這麼來理解  entrypoint 與 cmd 的關係

如果沒有定義 entrypoint, cmd 將作為它的 entrypoint

定義了 entrypoint 的話,cmd 只為 entrypoint 提供引數

cmd 可由docker run後的命令覆蓋,同時覆蓋引數

對於 #1 和  #2 更精緻的理解是容器執行的最終入口由 entrypoint 和實際的 cmd 拼接而成。entrypoint 和 cmd 需轉換為實際映象中的 exec 格式來拼接,合併後的第乙個元素是命令,其餘是它的引數。 閱讀全文 >>

如何向 Docker 容器傳遞引數

原文 我們在執行 docker 映象時希望能用下面的命令向容器傳遞命令列引數 docker run arg1 arg2 docker run arg1 arg2 其實只有第一種形式,緊隨映象名後那個總是乙個命令,其後才是引數。如果要向 docker 容器傳遞引數時,dockerfile 該如何寫,這...

向指令碼傳遞引數

start 在需要的時候我們可以向 perl 指令碼傳遞引數,perl 會自動將所有的引數放到陣列 argv 中,下面是乙個簡單的例子。usr bin perl use strict if argv 1 my name argv print welcome name n unix 的 cat 命令可...

向指令碼傳遞引數

1.使用 pg opt.sh bin sh opt.sh usage opt 1 processid 1 if ne 2 then usage exit 1 ficase opt in start start echo starting.processid stop stop echo stoppi...