当前位置: 首页 > article >正文

04、Docker学习,理论知识,第四天:DockerFile自定义Tomcat

Docker学习,理论知识,第四天:DockerFile自定义Tomcat

测试下面的两个保留字指令

3.7》、ADD  将宿主机目录下的文件拷贝进镜像且ADD命令自动处理URL和解压tar压缩包 
           ADD  centos-7-docker.tar.xz    
           (COPY直接拷贝,ADD拷贝+解压缩)
3.8》、COPY  类似ADD,拷贝文件和目录到镜像中             
           COPY src  desc  或 COPY["src","desc"]

案例:

1、创建tomcat9目录   mkdir tomcat9
2、创建文件  touch c.txt
3、将JDK和tomcat安装包的压缩包拷贝进上一步目录
	apache-tomcat-9.0.8.tar.gz
	jdk-8u171-linux-x64,tar.gz
4、在tomcat9下新建Dockerfile文件,目录内容:
	FROM centos
	MAINTAINER mytomcat_lee<james_taylor@126.com>
    #把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下
    COPY c.txt /usr/local/cincontainer.txt
    #把java与tomcat添加到容器中
    ADD jdk-8u171-linux-x64,tar.gz
    ADD apache-tomcat-9.0.8.tar.gz
    #安装vim编辑器
   	RUN yum -y install vim
    #设置工作访问时候的workdir路径,登录落脚点
    ENV MYPATH /usr/local
    WORKDIR $MYPATH
    #配置java与tomcat环境变量
    ENV JAVA_HOME /usr/local/jdk1.8.0_171
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8
    ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.8
    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
	#容器运行时监听的接口        
    EXPOSE 8080
    #启动运行tomcat
    #ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh"]
    #CMD ["/usr/local/apache-tomcat-9.0.8/bin/catalina.sh","run"]
    CMD /usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.8/bin/logs/catalina.out
        
5、构建build镜像
        docker build Dockerfile -t mytomcat9 .
        (-f 目录file )
6、测试docker images
7、运行 
    docker run -d -p 9080:8080 --name myt9 
    -v /opt/tomcat9/test:/usr/local/apache-tomcat-9.0.8/webapps/test 
    -v /opt/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-9.0.8/logs 
    --privileged=true 
    mytomcat9
        (--privileged=true是防止-v挂载容器卷的时候写权限不够而添加的)
8、docker ps
9、http://localhost:9080
10、在/opt/tomcat9/test下扔一个项目 测试下myt9是否可以跑
11、docker restart myt9 重启容器

http://www.kler.cn/a/501547.html

相关文章:

  • 计算机网络 (39)TCP的运输连接管理
  • 非PHP开源内容管理系统(CMS)一览
  • 使用Docker模拟PX4固件的无人机用于辅助地面站开发
  • 《零基础Go语言算法实战》【题目 2-22】Go 调度器优先调度问题
  • 51c大模型~合集104
  • MACPA:fMRI连接性分析的新工具
  • Github 2025-01-11 Rust开源项目日报 Top10
  • 利用Java爬虫获取义乌购店铺所有商品列表:技术探索与实践
  • 可视化重塑汽车展示平台新体验
  • 晨辉面试抽签和评分管理系统之六:面试答题倒计时
  • uniapp 使用 pinia 状态持久化
  • 无人机侦察:雷达系统概述!
  • 51单片机入门基础
  • Linux:进程控制
  • 机器人技术:ModbusTCP转CCLINKIE网关应用
  • 【MySQL】MySQL基本执行顺序
  • 51c自动驾驶~合集46
  • 013:深度学习之神经网络
  • 网络安全建设方案,信息安全风险评估报告,信息安全检测文档(Word原件完整版)
  • vue事件对象$event
  • 计算机网络之---网络安全的基本概念
  • C#,图论与图算法,有向图(Direct Graph)广度优先遍历(BFS,Breadth First Search)算法与源程序
  • Vue3初学之组件通信
  • 设计模式(5)——观察者模式
  • linux-rsyncd服务配置
  • 【杂谈】-50+个生成式人工智能面试问题(四)