Dockerfile的RUN、CMD、ENTRYPOINT

RUN:执行命令并创建新的Image Layer

CMD:设置容器启动后默认执行的命令和参数

ENTRYPOINT:设置容器启动时运行的命令

CMD

  • 容器启动时默认执行的命令
  • 如果docker run 指定了其它命令,CMD命令被忽略
  • 如果定义了多个CMD,只有最后一个会执行

比如Dockerfile内容如下

FROM centos
ENV name Docker
CMD echo "hello $name"

执行:(1)docker run [image] 会输出:hello Docker

           (2)docker run it [image] /bin/bash则不会输出CMD的命令    

ENTRYPOINT

  • 让容器以应用程序或者服务的形式运行
  • 不会被忽略,一定会执行

比如Dockerfile内容如下

FROM centos
ENV name Docker
ENTRYPOINT echo "hello $name"

执行:(1)docker run [image] 会输出:hello Docker

           (2)docker run it [image] /bin/bash 也会输出:hello Docker   

猜你喜欢

转载自blog.csdn.net/qq_21696621/article/details/89739250
今日推荐