簡體   English   中英

Docker:了解ENTRYPOINT和CMD指令

[英]Docker: understanding ENTRYPOINT and CMD instructions

我想問一些關於可以在Dockerfile中使用的ENTRYPOINTCMD指令的問題。

  1. 假設我使用figdocker-compose將本地目錄作為卷安裝在容器中。 何時執行ENTRYPOINTCMD指令?
    • 卷之后還是之前?
  2. 如果我將bash腳本傳遞給ENTRYPOINT ,每次啟動容器時都會執行此腳本嗎?
  3. 如果有一個bash腳本添加為ENTRYPOINT ,那么使用ENTRYPOINT docker rundocker exec執行的所有命令都將作為參數傳遞給此腳本嗎?
  4. 何時執行CMD恢復? 容器啟動並安裝卷后?
  5. 為什么Dockerfile中只能有一個CMD 如果我想啟動一個包含多個進程的容器/運行severa exacutables怎么辦?

1)ENTRYPOINT和CMD按它們在Dockerfile中出現的順序執行,無論卷安裝如何

2)如果你有ENTRYPOINT啟動動詞,你可以傳遞一個參數

3)是的,對於docker run,但是一些例子可能會澄清這一點,而docker exec只是讓你進入容器

4)CMD在容器啟動時執行

5)你可以在Dockerfile中使用幾個CMD,但只使用最后一個,docker設計用於運行一個進程,

如果你想運行幾個,你需要一些工具,如主管http://docs.docker.com/articles/using_supervisord或runit或s6或daemontools,請參閱http://docs.docker.com/faq

由於CMD很容易被覆蓋,而不是ENTRYPOINT(除非你的docker run --entrypoint ),你的Dockerfile中最后一行是最后一行,而最后一行是CMD,實際上是參數,可以改變

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM