码迷,mamicode.com
首页 > 其他好文 > 详细

docker ENTRYPOINT CMD 区别

时间:2014-09-16 16:12:31      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:docker

在编写dockerfile中ENTRYPOINT CMD都只能使用一次,如果存在多个只有最后一个命令生效;


ENTRYPOINT和CMD的主要区别在于运行docker run 参数传递的方式不通;


EXAMPLE:

...

CMD ["echo"]

执行

docker run $IMAGE_ID echo carson

CMD 指定的命令可覆盖 docker run 如果传递的命令和CMD指定的命令相同时会被覆盖;

此echo已把CMD["echo"]给覆盖掉,所以最后的结果是:carson


...

ENTRYPOINT ["echo"]

执行

docker run $IMAGE_ID echo carson

ENTRYPOINT 指定的命令只是一个入口 docker run 传递的命令都会传递给ENTRYPOINT,所以不会被覆盖;

ENTRYPOINT会把容器名后面的所有内容都当成参数传递给其指定的命令(不会对命令覆盖),此echo当成是参数来执行,不会把ENTRYPOINT["echo"]给覆盖掉;

所以执行结果是:echo carson


大家肯定都有一个疑问

ENTRYPOINT  docker run 这2个命令执行的顺序是什么?

在dockerfile中ENTRYPOINT指定的参数比docker run指定的参数要先执行;

EXAMPLE:

...

ENTRYPOINT["echo","carson"]

执行

docker run $IMAGE_ID good

相当于执行了:

echo carson good


RUN命令VS CMD命令

都是存在于Dockerfile中,build image执行RUN命令;RUN时执行CMD,CMD是image最终执行的命令;








本文出自 “西伯利亚·狼” 博客,请务必保留此出处http://kernal.blog.51cto.com/8136890/1553182

docker ENTRYPOINT CMD 区别

标签:docker

原文地址:http://kernal.blog.51cto.com/8136890/1553182

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!