• DockerFile的CMD/ENTRYPOINT 镜像案例


     

    作用:都是指定一个容器启动时要运行的命令

    CMD

    Dockerfile 中可以有多个 CMD 指令,但只有最后一个生效,CMD 会被 docker run 之后的参数替换

    实例

    tomcat的讲解演示

    docker run -it -p 8080:8080 tomcat
    

    docker run -it -p 8080:8080 tomcat ls -l
    

    ENTRYPOINT 

    docker run 之后的参数会被当做参数传递给 ENTRYPOINT,之后形成新的命令组合

    实例

    制作CMD版可以查询IP信息的容器

    FROM centos
    RUN yum install -y curl
    CMD [ "curl", "-s", "http://ip.cn" ]

    crul命令解释

    curl命令可以用来执行下载、发送各种HTTP请求,指定HTTP头部等操作。

    如果系统没有curl可以使用yum install curl安装,也可以下载安装。

    curl是将下载文件输出到stdout

    使用命令:curl http://www.baidu.com
    执行后,www.baidu.com的html就会显示在屏幕上了

    这是最简单的使用方法。用这个命令获得了http://curl.haxx.se指向的页面,同样,如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地。如果下载的是HTML文档,那么缺省的将只显示文件头部,即HTML文档的header。要全部显示,请加参数 -i

    问题

    如果我们希望显示 HTTP 头信息,就需要加上 -i 参数

    WHY

    我们可以看到可执行文件找不到的报错,executable file not found。

    之前我们说过,跟在镜像名后面的是 command,运行时会替换 CMD 的默认值

    因此这里的 -i 替换了原来的 CMD,而不是添加在原来的 curl -s http://ip.cn 后面。而 -i 根本不是命令,所以自然找不到。

    那么如果我们希望加入 -i 这参数,我们就必须重新完整的输入这个命令:

    $ docker run myip curl -s http://ip.cn -i

    制作ENTROYPOINT版查询IP信息的容器

    FROM centos
    RUN yum install -y curl
    ENTRYPOINT [ "curl", "-s", "http://ip.cn" ]

  • 相关阅读:
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    export和import 输出/接收模块变量的接口
    webpack:(模块打包机)
  • 原文地址:https://www.cnblogs.com/heian99/p/12146475.html
Copyright © 2020-2023  润新知