Dockerfile的CMD指令用法

CMD在容器运行的时候提供一些命令及参数,用法如下:,如你指定:,build后运行(假设镜像名为ec):,是不是感觉很像开机启动项,你可以暂时这样理解。,注意点:,docker run命令如果指定了参数会把CMD里的参数覆盖:,这里说明一下,如:docker run -it ubuntu /bin/bash 命令的参数是指/bin/bash 而非 -it ,-it只是docker 的参数,而不是容器的参数。,同样是上面的ec镜像启动:,就不会输出:this is a echo test,因为CMD命令被”/bin/bash”覆盖了。,一个Dockerfile仅仅最后一个CMD起作用。,执行文件或者没有执行文件(ENTRYPOINT提供),为执行容器提供缺省值。,如果CMD配合ENTRYPOINT那么他们的格式都需要是json数组格式,CMD用来提供参数。,CMD非参数模式,shell exec 当运行一个镜像的时候会执行。,shell格式 相当于指令在/bin/sh -c执行,如果不想使用shell格式,就需要使用数组格式,参数为单独字符串。,如果容器每次都执行则考虑CMD和ENTRYPOINT结合,docker run覆盖CMD,RUN镜像构建,并提交交结果。CMD构建阶段不执行,容器启动时候执行。,每个Dockfile只能有一条CMD命令,如果指定了多条,只有最后一条会执行。,如果用户启动容器时指定了运行命令,则会覆盖CMD指定命令。,以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册