dockerfile是用来构建docker镜像的文件,是由一系列命令和参数构建的脚本
构建步奏
dockerfile基础知识
dockerfile 执行流程
ENV $MY_PATH /usr/mytest --可以在后续RUN指令中使用,也可以在其他指令中使用
WORKID $MY_PATH
诉求:
FROM centos
MAINTAINER lzc<[email protected]>
ENV MYPATH /usr/local
# 指定起始目录
WORKDIR $MYPATH
RUN yum -y install vim
EXPOSE 80
CMD echo $MYPATH
CMD echo "success ---------- ok"
CMD /bin/bash
docker build -f /root/mydocker/Dockerfile2 -t mycentos:1.3 .
docker run -it mycentos:1.3 – 直接进入目录/usr/local,vim命令支持
docker history ce720531821d
IMAGE CREATED CREATED BY SIZE COMMENT
ce720531821d 5 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "/bin… 0B
adfc449180df 5 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B
598c523cf6e8 5 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B
1bd45d3aaf8b 5 minutes ago /bin/sh -c #(nop) EXPOSE 80 0B
61542d686d1f 5 minutes ago /bin/sh -c yum -y install vim 66.9MB
127d673c4ce3 10 minutes ago /bin/sh -c #(nop) WORKDIR /usr/local 0B
ccd1700ce269 10 minutes ago /bin/sh -c #(nop) ENV MYPATH=/usr/local 0B
10c87392a373 10 minutes ago /bin/sh -c #(nop) MAINTAINER lzc<1060905996… 0B
0f3e07c0138f 7 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
7 weeks ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
7 weeks ago /bin/sh -c #(nop) ADD file:d6fdacc1972df524a… 220MB
以tomcat为列,
# tomcat dockerfile
EXPOSE 8080
CMD ["catalina.sh", "run"]
启动tomcat
docker run -it -p 7777:8080 tomcat --正常启动tomcat
docker run -it -p 7777:8080 tomcat ls -l --不启动tomcat,只是打印目录 CMD 命令被覆盖
docker run 之后的命令会被传递给ENTRYPOINT,之后形成新的命令组合
FROM centos
RUN yum install -y curl
CMD ["curl","-s","https://ip.cn"]
使用ENTRYPOINT代替CMD
FROM centos
RUN yum install -y curl
ENTRYPOINT ["curl","-s","https://ip.cn"]
编译镜像 : docker build -f /root/mydocker/Dockerfile4 -t mycentos:1.5 .
启动镜像 : docker run -it mycentos:1.5
启动镜像 : docker run -it mycentos:1.5 -i --返回http和请求头
– 相当于执行 curl -s https://ip.cn -i
docker build -f /root/mydocker/Dockerfile5 -t mycentos:1.6
FROM centos
RUN yum install -y curl
ENTRYPOINT ["curl","-s","https://ip.cn"]
ONBUILD RUN echo "father onbuild ------8886"
docker build -f /root/mydocker/Dockerfile6 -t mycentos:1.7
FROM mycentos:1.6
RUN yum install -y curl
ENTRYPOINT ["curl","-s","https://ip.cn"]
build执行时输出日志
# Executing 1 build trigger
---> Running in aff0f7dc847f
father onbuild ------8886
Removing intermediate container aff0f7dc847f