Dockerfile执行命令

RUN 和CMD 以及ENTRYPOINT 

1,RUN :在Build构建时执行命令

2,ENTRYPOINT :容器启动时执行命令

3,CMD: 容器启动后执行默认的命令或参数

《1》RUN --构建时运行

RUN yum install -y vim #Shell命令格式
RUN ["yum","install","-y","vim"] #Exec命令格式,推荐使用这种方式

《2》ENTRYPOINT --启动命令

ENTRYPOINT :用户在容器启动时执行的命令
Dockerfile中只有最后一个ENTRYPOINT 会被执行
ENTRYPOINT ["ps"] #推荐使用Exec命令格式 

《3》CMD --默认命令

CMD用于设置默认执行的命令
如果Dockerfile中出现多个CMD,则只有最后一个被执行
如果容器启动时附加了指令,则CMD被忽略
CDM ["ps","-ef"] #推荐使用Exec格式

CMD和ENTRYPOINT区别在于,ENTRYPOINT一定会执行,CMD不一定执行,如果Dockerfile中CMD和ENTRYPOINT都出现的话,会被联合使用,因为CMD可以通过容器启动时附加了指令覆盖的

ENTRYPOINT ["echo"]
CMD ["world!!"]
如果直接执行  docker run -it my/test:1.1(这是我用Dockerfile创建的镜像),则会输出“world!!”
但是如果执行 docker run -it my/test:1.1 mytest!!!  则会输出“mytest!!!”

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值