Docker学习笔记3【Dockerfile】

1.Dockerfile构建三步骤

  • 编写Dockerfile文件
  • docker build
  • docker run

2.Dockerfile构建过程解析
① Dockerfile内容基础知识

  • 每条保留字指令都必须为大写字母且后面都要跟随至少一个参数
  • 指令按照从上到下,顺序执行
  • #表示注释
  • 每条指令都会创建一个新的镜像层,并对镜像进行提交
    ②Docker执行Dockerfile的大致流程
  • docker从基础镜像运行一个容器
  • 执行一条指令并对容器做出修改
  • 执行类似docker commit的操作提交一个新的镜像层
  • docker再基于刚提交的镜像运行一个新容器
  • 执行dockerfile中的下一条指令直到所有指令都执行完成
    Docker学习笔记3【Dockerfile】_第1张图片
    3.Dockerfile体系结构
    Docker学习笔记3【Dockerfile】_第2张图片
    4.案例

①Base镜像(sratch)
Docker Hub中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的

②自定义镜像myubuntu
自定义镜像使之具备:
登陆后的默认路径
vim编辑器
查看网络配置ifconfig支持

dockerfile:

FROM ubuntu
MAINTAINER st<798694404@qq.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN apt-get update && apt-get install -y vim
#-y是对update的yes操作
RUN apt-get install -y net-tools

EXPOSE 80

CMD echo $MYPATH
CMD echo "success------ok"
CMD /bin/bash
docker build -f /home/shark/mydocker/Dockerfile2 -t myubuntu:1.3 .
#一定不要忘记最后的点!!!

Docker学习笔记3【Dockerfile】_第3张图片
在这里插入图片描述
Docker学习笔记3【Dockerfile】_第4张图片
③CMD/ENTRYPOINT镜像案例
都是指定一个容器启动时要运行的命令
在这里插入图片描述
在这里插入图片描述
④自定义镜像Tomcat9

  • mkdir tomcat9
  • 在上述目录下touch c.txt
  • 将jdk和tomcat安装的压缩包拷贝进上一步目录
    Docker学习笔记3【Dockerfile】_第5张图片
  • 在tomcat9目录下新建Dockerfile文件
FROM ubuntu
MAINTAINER st<798694404@qq.com>
#把宿主机当前上下文的c.txt拷贝到容器/usr/local路径下
COPY c.txt /usr/local/cincontainer.txt
#把java与tomcat添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.31.tar.gz /usr/local/
#安装vim编辑器
#RUN apt-get update && apt-get install -y vim
#设置工作访问时候的WORKDIR路径,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_171
ENV CLASSPATH $JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.31
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.31
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE 8080
#启动时运行tomcat
#ENTRYPOINT ["/usr/local/apache-tomcat-9.0.31/bin/startup.sh"]
#CMD ["/usr/local/apache-tomcat-9.0.31/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-9.0.31/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.31/bin/logs/catalina.out
  • 构建
docker build -t sttomcat9 .
  • run
docker run -d -p 8080:8080 --name myt9 -v /home/shark/mydocker/tomcat9/test:/usr/local/apache-tomcat-9.0.31/webapps/test -v /home/shark/mydocker/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-9.0.31/logs --privileged=true sttomcat9
  • 验证
  • 结合前述的容器卷将测试的web服务test发布
  1. web.xml
  2. a.jsp
  3. 测试

你可能感兴趣的:(docker,tomcat)