dockerfile案例2-CMD ENTRYPOINT ONBUILD

先说CMD,以tomcat为例,如果启动容器命令如下:
docker run -it -p 7777:8080 tomcat ls -l
那么,相当于容器对应的dockerfile文件里面加了个
CMD ls -l
这个命令会使dockerfile文件里之前定义的CMD命令失效

而ENTRYPOINT作用是追加,看这个dockerfile:

FROM centos
RUN yum install -y curl
ENTRYPOINT ["curl","-s","http://ip.cn"]

build容器命令如下:
docker build -f /pathto/dockerfile -t mydefname:version .
查看容器
docker images mydefname:version
启动容器
docker run mydefname -i
相当于在dockerfile里面
ENTRYPOINT [“curl”,”-s”,”http://ip.cn”]
变成了
ENTRYPOINT [“curl”,”-s”,”-i”,http://ip.cn”]


~~~关于OBNBUILD~~~~~
新建dockerfile_father:

FROM centos
RUN yum install -y curl
ENTRYPOINT ["curl","-s","http://ip.cn"]
ONBUILD RUN echo "father onbuild...886"

build image
docker build -f /pathto/dockerfile_father -t myfather .

新建dockerfile_son:

FROM myfather
RUN yum install -y curl
ENTRYPOINT ["curl","-s","http://ip.cn"]

build image
docker build -f /pathto/dockerfile_son -t myson .
output:
….
“father onbuild…886”
….

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>