docker使用run覆蓋entrypoint


原文:https://phoenixnap.com/kb/docker-run-override-entrypoint

為了演示如何覆蓋 entrypoint 命令,我們將運行一個結合了 CMD 和 entrypoint 的 hello world 容器。

下面是 Dockerfile 的內容,ENTRYPOINT 命令定義了可執行文件,而 CMD 設置了默認參數。

FROM ubuntu 
MAINTAINER sofija 
RUN apt-get update 
ENTRYPOINT [“echo”, “Hello”] 
CMD [“World”]

如果構建一個鏡像並生成一個容器運行,得到:

你可以非常簡單地通過設置參數來覆蓋掉默認 CMD 指定的參數,格式如下:

sudo docker run [container_name] [new_parameter]

一個示例:

「然而」,你可能想要覆蓋掉默認的可執行文件,例如在一個容器中運行 Shell。這個時候,我們需要顯式地指定 --entrypoint 標志,語法如下:

sudo docker run --entrypoint [new_command] [docker_image] [optional:value]

例如,我們要覆蓋掉上面的 echo 命令,執行 shell:

sudo docker run -it --entrypoint /bin/bash [docker_image]

輸出告訴了我們已經身處容器之中:

❝小結一下,不難理解,當不指定--entrypoint 時,默認的 entrypoint 就是 shell,所以如果我們在 dockerfile 中指定了 entry point,那么我們想要運行其他可執行文件時,就必須顯式地指定可執行文件了。❞


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM