美文网首页系统学习docker
2.7 run vs cmd vs entrypoint

2.7 run vs cmd vs entrypoint

作者: ouchaochao | 来源:发表于2019-08-07 22:44 被阅读0次

首先明确一下概念:

run:执行命令并创建新的 image layer
cmd:设置容器启动后默认执行的命令和参数
entrypoint:设置容器启动时运行的命令

在介绍cmd和entrypoint之前,先了解一下shell和exec格式:

  • shell:
FROM centos
RUN apt-get install -y vim
ENV name docker
CMD echo "hello docker"
ENTRYPOINT echo "hello $name "
  • exec
FROM centos  
RUN ["apt-get", "install", "-y", "vim"]
ENV name docker
CMD ["/bin/echo", "hello docker"]
ENTRYPOINT ["/bin/bash","-c",  "echo hello $name "]
  • build一个docker
cd somefile
docker build -t cc/xxx .

CMD

容器启动时默认执行的命令

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

情况一:如果docker run指定了其它命令,CMD命令被忽略

docker run -it [image] /bin/bsh

情况二:如果定义了多个CMD,只有最后一个执行

...
CMD echo "hello ab"
CMD echo "hello $name"  # 只执行这个

ENTRYPOINT

让容器以应用程序或者服务的形式运行
特点:不会被忽略,一定执行
最佳实践:写一个shell脚本作为entrypoint

COPY docker-entrypoint.sh /usr/local/bin
ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 27017
CMD ["mongoDB"]

相关文章

  • 2.7 run vs cmd vs entrypoint

    首先明确一下概念: 在介绍cmd和entrypoint之前,先了解一下shell和exec格式: shell: e...

  • RUN vs CMD vs ENTRYPOINT 区别

    RUN:执行命令并创建新的镜像层; CMD:设置容器启动后执行镜像指定的的命令即参数,但 cmd 能被 docke...

  • Docker CMD vs ENTRYPOINT

    它们都用来标识image的可执行文件 很多image将自己的CMD设置为/bin/sh 或者 /bin/bash,...

  • Docker CMD VS ENTRYPOINT

    有些命令用的时候糊里糊涂,所以抽空整理一下,毕竟保不齐哪天面试的时候就会被cue到:> Docker 使用CMD和...

  • RUN, CMD ,ENTRYPOINT

    近来需要在服务器上起一个c++编译后的socket服务,RUN 在docker里是用来生成镜像的在使用RUN ./...

  • Docker命令CMD ENTRYPOINT

    CMD RUN ENTRYPOINT均有两种方式指定命令,即Shell,Exec CMD CMD ["param1...

  • dockerfile 详解

    FROM MAINTAINER RUN CMD ENTRYPOINT USER EXPOSE ENV ADD VO...

  • Docker学习资料

    Docker入门 Docker gitbook RUN, ENTRYPOINT, CMD的区别 Docker数据卷...

  • docker 再认识

    1.RUN && CMD && ENTRYPOINT 区别: RUN :执行命令并且创建新的image layer...

  • Docker RUN, CMD, ENTRYPOINT

    在使用Dockerfile创建image时, 下面三条指令比较容易混淆。RUN, CMD, ENTRYPOINT....

网友评论

    本文标题:2.7 run vs cmd vs entrypoint

    本文链接:https://www.haomeiwen.com/subject/jwladctx.html