gpt4 book ai didi

Docker:理解ENTRYPOINT和CMD指令

转载 作者:行者123 更新时间:2023-12-04 21:39:21 24 4
gpt4 key购买 nike

我想问一些关于ENTRYPOINT的问题和 CMD可在 Dockerfile 中使用的说明。

  • 假设我使用 fig 将本地目录作为卷安装在容器中或 docker-compose .确切时间是ENTRYPOINTCMD执行的指令?
  • 卷被挂载之后还是之前?
  • 如果我将 bash 脚本传递给 ENTRYPOINT , 每次启动容器时都会执行这个脚本吗?
  • 如果有一个 bash 脚本添加为 ENTRYPOINT , 将使用 docker run 执行的所有命令或 docker exec作为参数传递给这个脚本?
  • 确切时间是CMD执行了吗?一旦启动容器并安装卷?
  • 为什么只能有一个CMD在 Dockerfile 中?如果我想启动一个包含多个进程的容器/运行 severa 可执行文件怎么办?
  • 最佳答案

    1) ENTRYPOINT 和 CMD 按照它们在 Dockerfile 中出现的顺序执行,与卷挂载无关

    2) 如果你有一个 ENTRYPOINT 启动一个动词,你可以传递一个参数

    3) 是的 docker run 但一些例子可能会澄清这一点,而 docker exec 只是让你进入容器

    4) CMD 在容器启动时执行

    5)在一个Dockerfile中可以使用多个CMD,但只会使用最后一个,docker是为了运行一个进程而设计的,

    如果要运行多个,则需要一些工具,例如supervisor http://docs.docker.com/articles/using_supervisord或 runit 或 s6 或 daemontools 见 http://docs.docker.com/faq

    由于 CMD 很容易被覆盖而不是 ENTRYPOINT(除非您是 docker run --entrypoint )通常您将 ENTRYPOINT 作为 Dockerfile 中的最后一行,而 CMD 作为最后一行,实际上是可以更改的参数

    关于Docker:理解ENTRYPOINT和CMD指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30752853/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com