先说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 条评论。