【问题标题】:What's the meaning of "CMD [ "-?" ]" in Docker?Docker中的“CMD [“-?”]”是什么意思?
【发布时间】:2018-12-17 18:30:31
【问题描述】:

《Docker Book v17.12.0-ce》第223页

清单 6.19:我们的战争文件获取器
来自 ubuntu:16.04
维护者詹姆斯·特恩布尔
ENV REFRESHED_AT 2016-06-01
运行 apt-get -yqq 更新
运行 apt-get -yqq install wget
卷 [“/var/lib/tomcat7/webapps/”]
WORKDIR /var/lib/tomcat7/webapps/
入口点 [ "wget" ]
CMD [ "-?" ]

这个非常简单的图像做了一件事:它从 URL 中获取任何文件 这是在从它运行容器并将文件存储在 /var/lib 中时指定的 /tomcat7/webapps/ 目录。该目录也是一个卷和工作 任何容器的目录。我们将与我们的 Tomcat 共享此卷 服务器并运行其内容。 最后,ENTRYPOINT 和 CMD 指令允许我们的容器在没有 指定网址;他们通过在容器返回 wget 帮助输出来做到这一点 在没有 URL 的情况下运行。

谁能告诉我"CMD ["-?"]"是什么意思

我知道 ENTRYPOINT 和 CMD 的概念, 我不明白的是“-?”的含义在“wget -?”

【问题讨论】:

    标签: docker


    【解决方案1】:

    当您运行 Docker 容器时,它通过简单地连接“入口点”和“命令”来构建命令行。这些来自docker run 命令行中的不同位置;但如果你不提供--entrypoint 选项,则使用 Dockerfile 中的ENTRYPOINT,如果你没有在镜像名称后提供任何额外的命令行参数,则附加CMD

    所以,有几个调用:

    # Does "wget -?"
    docker run --rm thisimage
    
    # Does "wget -O- http://stackoverflow.com": dumps the SO home page
    docker run --rm thisimage -O- http://stackoverflow.com
    
    # What you need to do to get an interactive shell
    docker run --rm -it --entrypoint /bin/sh thisimage
    

    【讨论】:

    • 我知道ENTRYPOINT和CMD的概念,不明白的是“-?”的意思在“wget -?”中
    【解决方案2】:

    我想通了,作者写错了。 CMD 中的参数应该是“-h”。 因为在后面他说“最后,ENTRYPOINT 和 CMD 指令允许我们的容器在没有指定 URL 时运行;当容器在没有 URL 的情况下运行时,它们通过返回 wget 帮助输出来做到这一点。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-05
      • 2015-06-27
      • 2018-09-06
      • 2019-02-18
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多