zoukankan      html  css  js  c++  java
  • 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" ]

  • 相关阅读:
    Go实现线程池
    Go语言工程结构
    Go语言示例-函数返回多个值
    Go语言参数中的三个点是干什么的
    go语言示例-Timer计时器的用法
    Go语言的类型转化
    iOS 修改通讯录联系人地址(address)崩溃原因分析
    tableview小结-初学者的问题
    Objective-C总Runtime的那点事儿(一)消息机制
    论坛源码推荐(11.6):iPhone6/6 plus屏幕适配Demo,Java代码转Objective-C
  • 原文地址:https://www.cnblogs.com/heian99/p/12146475.html
Copyright © 2011-2022 走看看