[Docker] 執行 docker run 時,覆寫 ENTRYPOINT 指定執行的程式

[Docker] 執行 docker run 時,覆寫 ENTRYPOINT 指定執行的程式

之前在 Dockerfile 中指定了 ENTRYPOINT 指令,

因此執行 container 時都會自動執行 ENTRYPOINT 指定的程式。

但今天我想要用 bash 進去 container 裡面做一點實驗,該怎麼辦呢?

 

原來在 docker run 中用 –entrypoint 選擇就可以了~

不過有一點要注意的是,–entrypoint 指定的是執行檔的名稱,

所有要帶給這個執行檔的參數,都要加在映像檔名稱的後面~

 

舉例來說,我想要用 centos 這個映像檔產生一個 container,

並且指定 container 去執行 /bin/ls -l /root 的話,

得把 /bin/ls 放在 –entrypoint,而 -l /root 放在映像檔的後面,如:

docker run --entrypoint "/bin/ls" centos -l /root

 

以我原本的例子而言,我只是要進入 shell 環境,

所以 –entrypoint 給 /bin/bash 就可以了:

docker run --entrypoint /bin/bash my_image

 

參考資料:How to properly override the ENTRYPOINT using docker run

(本頁面已被瀏覽過 5,936 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料