docker ENTRYPOINT CMD 區別

來源:互聯網
上載者:User

標籤:docker

在編寫dockerfile中ENTRYPOINT CMD都只能使用一次,如果存在多個只有最後一個命令生效;


ENTRYPOINT和CMD的主要區別在於運行docker run 參數傳遞的方式不通;


EXAMPLE:

...

CMD ["echo"]

執行

docker run $IMAGE_ID echo carson

CMD 指定的命令可覆蓋 docker run 如果傳遞的命令和CMD指定的命令相同時會被覆蓋;

此echo已把CMD["echo"]給覆蓋掉,所以最後的結果是:carson


...

ENTRYPOINT ["echo"]

執行

docker run $IMAGE_ID echo carson

ENTRYPOINT 指定的命令只是一個入口 docker run 傳遞的命令都會傳遞給ENTRYPOINT,所以不會被覆蓋;

ENTRYPOINT會把容器名後面的所有內容都當成參數傳遞給其指定的命令(不會對命令覆蓋),此echo當成是參數來執行,不會把ENTRYPOINT["echo"]給覆蓋掉;

所以執行結果是:echo carson


大家肯定都有一個疑問

ENTRYPOINT  docker run 這2個命令執行的順序是什麼?

在dockerfile中ENTRYPOINT指定的參數比docker run指定的參數要先執行;

EXAMPLE:

...

ENTRYPOINT["echo","carson"]

執行

docker run $IMAGE_ID good

相當於執行了:

echo carson good


RUN命令VS CMD命令

都是存在於Dockerfile中,build image執行RUN命令;RUN時執行CMD,CMD是image最終執行的命令;








本文出自 “西伯利亞·狼” 部落格,請務必保留此出處http://kernal.blog.51cto.com/8136890/1553182

docker ENTRYPOINT CMD 區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.