Dockerfile构建Tomcat镜像

准备apache包和jdk并解压

[root@localhost tomcat]# ll

总用量 196728

-rw-r--r--. 1 root root   9690027 7月  17 2020 apache-tomcat-8.5.40.tar.gz

-rw-r--r--. 1 root root       674 8月   2 20:19 Dockerfile

-rw-r--r--. 1 root root 191753373 7月  17 2020 jdk-8u191-linux-x64.tar.gz

[root@localhost tomcat]# tar xf apache-tomcat-8.5.40.tar.gz

[root@localhost tomcat]# tar xf jdk-8u191-linux-x64.tar.gz

[root@localhost tomcat]# ll

总用量 196728

drwxr-xr-x. 9 root root       220 8月   3 13:58 apache-tomcat-8.5.40

-rw-r--r--. 1 root root   9690027 7月  17 2020 apache-tomcat-8.5.40.tar.gz

-rw-r--r--. 1 root root       552 8月   3 13:55 Dockerfile

drwxr-xr-x. 7   10  143       245 10月  6 2018 jdk1.8.0_191

-rw-r--r--. 1 root root 191753373 7月  17 2020 jdk-8u191-linux-x64.tar.gz

创建工作目录

[root@localhost ]# mkdir tomcat

编写dockerfile文件

[root@localhost tomcat]# vim Dockerfile

FROM centos:7                               

MAINTAINER Crushlinux <crushlinux@163.com   

ADD jdk1.8.0_191 /usr/local/java

ENV JAVA_HOME /usr/local/java

ENV JAVA_BIN /use/local/java/bin

ENV JRE_HOME /usr/local/java/jre

ENV PATH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin

ENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar

ADD apache-tomcat-8.5.40 /usr/local/tomcat

RUN chmod 755 /usr/local/tomcat/bin/startup.sh

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

EXPOSE 8080

CMD ["/usr/local/tomcat/bin/catalina.sh","run"]

~                        

具体来说,这个Dockerfile文件的内容如下:

  • FROM centos:7:表示基础镜像是CentOS 7。
  • MAINTAINER Crushlinux <crushlinux@163.com>:表示维护者信息,即该Docker镜像的作者和联系方式。
  • ADD jdk1.8.0_191 /usr/local/java:将JDK压缩包解压到/usr/local/java目录下。
  • ENV JAVA_HOME /usr/local/java:设置JAVA_HOME环境变量为/usr/local/java
  • ENV JAVA_BIN /usr/local/java/bin:设置JAVA_BIN环境变量为/usr/local/java/bin
  • ENV JRE_HOME /usr/local/java/jre:设置JRE_HOME环境变量为/usr/local/java/jre
  • ENV PATH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin:将/usr/local/java/bin/usr/local/java/jre/bin添加到PATH环境变量中。
  • ENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar:设置CLASSPATH环境变量为/usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar
  • ADD apache-tomcat-8.5.40 /usr/local/tomcat:将Tomcat压缩包解压到/usr/local/tomcat目录下。
  • RUN chmod 755 /usr/local/tomcat/bin/startup.sh:设置/usr/local/tomcat/bin/startup.sh文件的权限为755。
  • RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime:创建一个软链接将系统时区设置为上海。
  • EXPOSE 8080:将容器的8080端口暴露出来

      

构建镜像

[root@localhost tomcat]# docker build -t tomcat:new .Sending build context to Docker daemon   614 MBStep 1/13 : FROM centos:7---> 74d9a3a7d55dStep 2/13 : MAINTAINER Crushlinux <crushlinux@163.com---> Using cache---> efa399b03844Step 3/13 : ADD jdk1.8.0_191 /usr/local/java---> 6c3bcd8412e8Removing intermediate container 2ee47f838026Step 4/13 : ENV JAVA_HOME /usr/local/java---> Running in e9f1e8c91c15---> a2bfe81ba7f5Removing intermediate container e9f1e8c91c15Step 5/13 : ENV JAVA_BIN /use/local/java/bin---> Running in abbe840f87de---> 8a62172d033aRemoving intermediate container abbe840f87deStep 6/13 : ENV JRE_HOME /usr/local/java/jre---> Running in 4209c7fe0c4a---> 9936e3b14561Removing intermediate container 4209c7fe0c4aStep 7/13 : ENV PATH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin---> Running in 3f266fb8c13e---> 11bfac038ca4Removing intermediate container 3f266fb8c13eStep 8/13 : ENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar---> Running in 681f67cde11e---> 62e50122b88aRemoving intermediate container 681f67cde11eStep 9/13 : ADD apache-tomcat-8.5.40 /usr/local/tomcat---> abfee70cf80bRemoving intermediate container 456e93af2eb9Step 10/13 : RUN chmod 755 /usr/local/tomcat/bin/startup.sh---> Running in 886999728ff0---> bcdc9c2a7630Removing intermediate container 886999728ff0Step 11/13 : RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime---> Running in b513e27c3035---> eafbe22ec214Removing intermediate container b513e27c3035Step 12/13 : EXPOSE 8080---> Running in 9d3d4047a2e3---> 4149863793a1Removing intermediate container 9d3d4047a2e3Step 13/13 : CMD /usr/local/tomcat/bin/catalina.sh run---> Running in 97d46c7d6b1b---> ccdba3e6ed6aRemoving intermediate container 97d46c7d6b1bSuccessfully built ccdba3e6ed6a

查看

[root@localhost tomcat]# docker images tomcat:new

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

tomcat              new                 ccdba3e6ed6a        48 seconds ago      1e+03 MB

测试容器

[root@localhost tomcat]# docker run -d -p 8080:8080 --name=tomcat tomcat:new

19e5c9217b9ab431c75a7c07f1e8fd7571b67f9744ee060271163300a5dba64c

浏览器访问测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/74046.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8.3 C高级 Shell脚本

写一个脚本&#xff0c;包含以下内容&#xff1a; 显示/etc/group文件中第五行的内容创建目录/home/ubuntu/copy切换工作路径到此目录赋值/etc/shadow到此目录&#xff0c;并重命名为test将当前目录中test的所属用户改为root将test中其他用户的权限改为没有任何权限 #!/bin/b…

KK集团再闯港交所:引领潮流零售市场,2023年一季度业绩增势显著

撰稿|行星 来源|贝多财经 7月31日&#xff0c;KK Group Company Holdings Limited&#xff08;下称“KK集团”&#xff09;在港交所更新招股书&#xff0c;补充了截至2023年3月31日的财务数据等信息&#xff0c;继续推进上市事宜&#xff0c;摩根士丹利和瑞信为其联席保荐人。…

Flutter环境搭建踩坑集锦

Flutter 背景准备工作先检查一下自己的电脑&#xff0c;看一下是不是满足配置要求下载安装配置环境下载安装JDK下载安装Android studio下载Flutterflutter doctor故障Android license status unknownNetwork resources 故障 后记 背景 发现一个不错的框架Flutter&#xff0c;听…

elementUi el-radio神奇的:label与label不能设置默认值

问题&#xff1a;最近项目遇到一个奇葩的问题&#xff1a;红框中列表的单选按钮无法根据需求设置默认选中&#xff0c;但是同样是设置开启状态的单选框可以设置默认状态 原因&#xff1a;开始同样是和开启/关闭状态一样也把红框中列表的默认值设置为数字模式&#xff0c;但是由…

shell脚本练习

#include <myhead.h> //递归实现输入一个数,输出这个数的每一位 void fun1(int data) {if(data 0) return;fun1(data/10);printf("%d\t",data%10);}//递归实现输入一个数,输出这个数的二进制 void fun2(int data) {if(data 0) return;fun2(data/2);printf(&q…

归并排序——“数据结构与算法”

各位CSDN的uu们好呀&#xff0c;今天&#xff0c;小雅兰的内容仍然是数据结构与算法专栏的排序呀&#xff0c;下面&#xff0c;让我们进入归并排序的世界吧&#xff01;&#xff01;&#xff01; 归并排序 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种…

etcd实现大规模服务治理应用实战

导读&#xff1a;服务治理目前越来越被企业建设所重视&#xff0c;特别现在云原生&#xff0c;微服务等各种技术被更多的企业所应用&#xff0c;本文内容是百度小程序团队基于大模型服务治理实战经验的一些总结&#xff0c;同时结合当前较火的分布式开源kv产品etcd&#xff0c;…

Windows驱动开发

开发Windows驱动程序时&#xff0c;debug比较困难&#xff0c;并且程序容易导致系统崩溃&#xff0c;这时可以使用Virtual Box进行程序调试&#xff0c;用WinDbg在主机上进行调试。 需要使用的工具&#xff1a; Virtual Box&#xff1a;用于安装虚拟机系统&#xff0c;用于运…

Grafana制作图表-自定义Flink监控图表

简要 有时候我们在官网的Grafana下载的图表是这样的&#xff0c;如下图 #算子的处理时间&#xff0c;就是处理数据的延迟数据抓取&#xff0c;这个的说明看下下面的文章 metrics.latency.interval: 60 metrics.reporter.promgateway.class: org.apache.flink.metrics.prometh…

深度学习与神经网络

人工智能&#xff0c;机器学习&#xff0c;深度学习&#xff0c;神经网络&#xff0c;emmmm&#xff0c;傻傻分不清楚&#xff0c;这都啥呀&#xff0c;你知道吗&#xff1f;我不知道。你知道吗&#xff1f;我不知道。 来来来&#xff0c;接下来&#xff0c;整硬菜&#xff1a…

WAIC2023:图像内容安全黑科技助力可信AI发展

目录 0 写在前面1 AI图像篡改检测2 生成式图像鉴别2.1 主干特征提取通道2.2 注意力模块2.3 纹理增强模块 3 OCR对抗攻击4 助力可信AI向善发展总结 0 写在前面 2023世界人工智能大会(WAIC)已圆满结束&#xff0c;恰逢全球大模型和生成式人工智能蓬勃兴起之时&#xff0c;今年参…

使用事件侦听器和 MATLAB GUI 查看 Simulink 信号研究

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【JavaEE】博客系统前后端交互

目录 一、准备工作 二、数据库的表设计 三、封装JDBC数据库操作 1、创建数据表对应的实体类 2、封装增删改查操作 四、前后端交互逻辑的实现 1、博客列表页 1.1、展示博客列表 1.2、博客详情页 1.3、登录页面 1.4、强制要求用户登录&#xff0c;检查用户的登录状态 …

RabbitMQ:概念和安装,简单模式,工作,发布确认,交换机,死信队列,延迟队列,发布确认高级,其它知识,集群

1. 消息队列 1.0 课程介绍 1.1.MQ 的相关概念 1.1.1.什么是MQ MQ(message queue&#xff1a;消息队列)&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO 先入先出&#xff0c;只不过队列中存放的内容是message 而已&#xff0c;还是一种跨进程的通信机制…

【云原生】K8S二进制搭建一

目录 一、环境部署1.1操作系统初始化 二、部署etcd集群2.1 准备签发证书环境在 master01 节点上操作在 node01与02 节点上操作 三、部署docker引擎四、部署 Master 组件4.1在 master01 节点上操 五、部署Worker Node组件 一、环境部署 集群IP组件k8s集群master01192.168.243.1…

牛客网Verilog刷题——VL53

牛客网Verilog刷题——VL53 题目答案 题目 设计一个单端口RAM&#xff0c;它有&#xff1a; 写接口&#xff0c;读接口&#xff0c;地址接口&#xff0c;时钟接口和复位&#xff1b;存储宽度是4位&#xff0c;深度128。注意rst为低电平复位。模块的接口示意图如下。 输入输出描…

基于深度学习的高精度课堂人脸检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度课堂人脸检测系统可用于日常生活中或野外来检测与定位课堂人脸目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的课堂人脸目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标…

如何保证接口测试的覆盖率?

写在前面_一定要先谈下接口在测试领域的地位&#xff1a; 在当前企业实际测试技能应用中&#xff0c;功能测试和接口测试应用最广泛。但相比功能测试&#xff0c;接口测试缺口却非常大。 且接口测试在测试领域地位非常高&#xff0c;是软件测试工程师初级和中级分界线。所以测…

生成对抗网络DCGAN学习

在AI内容生成领域&#xff0c;有三种常见的AI模型技术&#xff1a;GAN、VAE、Diffusion。其中&#xff0c;Diffusion是较新的技术&#xff0c;相关资料较为稀缺。VAE通常更多用于压缩任务&#xff0c;而GAN由于其问世较早&#xff0c;相关的开源项目和科普文章也更加全面&#…

海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储

文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131679108 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…