Dockerfile构建过程
基础知识:

步骤:
dockerfile:构建文件,定义了一切的步骤,源代码
dockerimages:通过Dockerfile 构建生成的镜像,最终发布和运行的产品
docker容器: 容器就是镜像运行起来提供服务
DockerFile的指令
编写DockerfileDockerfile语法格式:– FROM:基础镜像.一切从这里开始构建– MAINTAINER:镜像创建者信息(姓名+邮箱)– EXPOSE:开放的端口– ENV:设置环境变量– ADD:复制文件到镜像– RUN:制作镜像时执行的命令,可以有多个– WORKDIR:定义容器默认工作目录- VOLUME:挂载的目录– CMD:容器启动时执行的命令,仅可以有一条CMD 可以被替换- ENTRYPOINT:指定容器启动的时候要运行的命令,可以追加命令(ENTRYPOINT ["ls","-a"])- COPY #类似ADD,将我们的文件拷贝到镜像中FROM:#####从头制作baseImageFROM searchRUN: 执行命令,每执行一条run,多一个分层,一般用&&合并语句,反斜杠“\”换行RUN yum -y update && yum -y install lrzsz \net-toolsRUN apt-get -y update && apt-get -y install lrzsz \net-toolsRUN /bin/bash -c 'source $HOME/.bashrc;echo $HOME'WORKDIR :进入或创建目录,使用绝对路径#####进入/root 目录WORKDIR /root如果目录没有会自动创建WORKDIR /testWORKDIR demo//输出:/test/demoRUN pwdADD 和 COPY:将本地的文件,添加到image里//将hello 添加到根目录下ADD hello ///将tar包直接解压到跟目录ADD test.tar.gzNNV: 增加Dockerfile 的可读性//设置常量ENV MYSQL_MAJOR 5.5//使用常量$MYSQL_MAJOR

案例: tomcat镜像制作
tomcat官网下载tomcat包
https://tomcat.apache.org/
apache-tomcat-9.0.38.tar.gz
[root@docker1-60 dockerfile_test]# cat dockerfile_tomcat
FROM cf49811e3cdb
MAINTAINER lvyufei
COPY readme.txt /usr/local/readme.txt
ADD apache-tomcat-9.0.38.tar.gz /usr/local/
RUN yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-deadless vim net-tools
ENV MYPATH /usr/local/
WORKDIR $MYPATH
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.38/bin/startup.sh && tail -f /usr/local/apache-tomcat-9.0.38/logs/catalina.out
[root@docker1-60 dockerfile_test]# docker build -f dockerfile_tomcat -t diytomcat .
[root@docker1-60 dockerfile_test]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
diytomcat latest 7916478ad3ec 10 minutes ago 560MB
[root@docker1-60 dockerfile_test]# docker run -d -p 8081:8080 --name lvyufei -v /home/tomcat/test:/usr/local/apache-tomcat-9.0.38/webapps/test -v /home/tomcat/logs/:/usr/local/apache-tomcat-9.0.38/logs diytomcat:latest
