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

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

浏览器访问测试

相关文章:

Dockerfile构建Tomcat镜像

准备apache包和jdk并解压 [rootlocalhost 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-…...

k8s的介绍

简介 Kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用, K8s的目标是让部署容器化的应用简单并且高效,K8s提供了应用部署,规划,更新,维护的一种机制。 K8s是Google开源的一个容器编排引…...

mysql sql语句 需要使用like 场景,解决方案

mysql 多重like 解决方案 方案一、使用like 方案二、使用REGEXP 正则匹配 方案三、使用group_concat多重模糊匹配 方案一、使用like 查询user包含小李并且小王的相关数据 SELECT * FROM user WHERE name LIKE %小王% or name like %小王% 方案二、使用REGEXP 正则匹配 查询use…...

通过C语言设计的贪吃蛇游戏(控制台终端)

一、项目介绍 当前通过控制台终端实现一个贪吃蛇小游戏&#xff0c;实现游戏的绘制、更新、控制等功能。 二、实现效果 三、完整代码 下面贴出的代码在Windows系统上编译运行&#xff0c;需要使用conio.h头文件中的getch()函数来获取键盘输入&#xff0c;用于控制蛇的移动。…...

c++实现Qt信号和槽机制

文章目录 简介信号槽信号与槽的连接 特点观察者模式定义观察者模式结构图 实现简单的信号和槽 简介 信号槽机制与Windows下消息机制类似&#xff0c;消息机制是基于回调函数&#xff0c;Qt中用信号与槽来代替函数指针&#xff0c;使程序更安全简洁。  信号和槽机制是 Qt 的核心…...

【Linux】五、进程

一、冯诺依曼体系结构 存储器&#xff1a;指的是内存&#xff1b; 输入设备&#xff1a;键盘、摄像头、话筒&#xff0c;磁盘&#xff0c;网卡&#xff1b; 输出设备&#xff1a;显示器、音响、磁盘、网卡&#xff1b; 中央处理器&#xff08;CPU&#xff09;&#xff1a;运算器…...

使用 OpenCV 和 Python 卡通化图像-附源码

介绍 在本文中,我们将构建一个有趣的应用程序,它将卡通化提供给它的图像。为了构建这个卡通化器应用程序,我们将使用 python 和 OpenCV。这是机器学习令人兴奋的应用之一。在构建此应用程序时,我们还将了解如何使用 easygui、Tkinter 等库。在这里,您必须选择图像,然后应…...

GitLab不同角色对应的权限

Owner&#xff08;拥有者&#xff09;&#xff1a; 拥有者是项目或组的创建者&#xff0c;拥有最高级别的权限。他们可以添加、删除项目成员&#xff0c;修改项目设置&#xff0c;管理访问权限&#xff0c;并进行项目转让。在组级别&#xff0c;他们还可以添加或删除子组和项目…...

手写一个简易的布隆过滤器

1.什么是布隆过滤器 布隆过滤器&#xff08;Bloom Filter&#xff09;是1970年由布隆(人名)提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多&#xff0c;…...

阿里云快速部署开发环境 (Apache + Mysql8.0)

本文章的内容截取于云服务器管理控制台提供的安装步骤&#xff0c;再整合前人思路而成&#xff0c;文章末端会提供原文连接 ApacheMysql 8.0部署MySQL数据库&#xff08;Linux&#xff09;步骤一&#xff1a;安装MySQL步骤二&#xff1a;配置MySQL步骤三&#xff1a;远程访问My…...

侧边栏的打开与收起

侧边栏的打开与收起 <template><div class"box"><div class"sideBar" :class"showBox ? : controller-box-hide"><div class"showBnt" click"showBox!showBox"><i class"el-icon-arrow-r…...

贝叶斯学习

贝叶斯 贝叶斯学习的背景贝叶斯定理举例 概览选择假设— MAPMAP举例 选择假设 — 极大似然 MLML 举例: 抛硬币问题 极大似然 & 最小二乘Nave Bayesian Classifier (朴素贝叶斯分类器)举例1&#xff1a;词义消歧 (Word Sense Disambiguation)举例 2: 垃圾邮件过滤 从垃圾邮件…...

Java并发系列之六:CountDownLatch

CountDownLatch作为开发中最常用的组件&#xff0c;今天我们来聊聊它的作用以及内部构造。 首先尝试用一句话对CountDownLatch进行概括: CountDownLatch基于AQS&#xff0c;它实现了闩锁&#xff0c;在开发中可以将其用作任务计数器。 若想要较为系统地去理解这些特性&#xff…...

24数据结构-图的基本概念与存储结构

目录 第六章 图6.1 图的基本概念知识回顾 6.2 图的储存结构&#xff08;邻接矩阵法&#xff09;1. 数组表示法(1) 有向图&#xff0c;无向图的邻接矩阵 2. 定义邻接矩阵的结构3. 定义图的结构4. 构造图G5. 特点 第六章 图 6.1 图的基本概念 图是一种非线性结构 图的特点&am…...

自然语言处理学习笔记(三)————HanLP安装与使用

目录 1.HanLP安装 2.HanLP使用 &#xff08;1&#xff09;预下载 &#xff08;2&#xff09;测试 &#xff08;3&#xff09;命令行 &#xff08;4&#xff09;测试样例 3.pyhanlp可视化 4. HanLP词性表 1.HanLP安装 HanLP的 Python接口由 pyhanlp包提供&#xff0c;其安装…...

CS 144 Lab Five -- the network interface

CS 144 Lab Five -- the network interface TCP报文的数据传输方式地址解析协议 ARPARP攻击科普 Network Interface 具体实现测试tcp_ip_ethernet.ccTCPOverIPv4OverEthernetAdapterTCPOverIPv4OverEthernetSpongeSocket通信过程 对应课程视频: 【计算机网络】 斯坦福大学CS144…...

Mecha

一、Mecha Mecha 是一个开源的多云 Kubernetes 管理平台&#xff0c;旨在简化和统一在多个云提供商上运行 Kubernetes 集群的管理和操作。它是由阿里巴巴集团开发和维护的项目。 Mecha 的主要目标是提供一个统一的界面和工具&#xff0c;使用户能够更轻松地在不同的云提供商上…...

Apache RocketMQ之集成RocketMQ_MQTT 安装部署协议

Apache RocketMQ 安装说明 安装步骤 参考快速开始 https://rocketmq.apache.org/zh/docs/quickStart/01quickstart 安装可视化rocketmq_dashboard下载地址 https://rocketmq.apache.org/zh/docs/4.x/deployment/03Dashboard/ 安装rocketmq_mqtt https://rocketmq.apache.o…...

Oracle多行数据合并为一行数据,并将列数据转为字段名

Oracle多行数据合并为一行数据 实现查询效果原数据 方式一&#xff1a;MAX()数据效果SQL 方式二&#xff1a;LISTAGG()数据效果 方式三&#xff1a;WM_CONCAT()数据效果 实现查询效果 原数据 FZPROJECTVALUE1电脑$16001手机$121导管$12电脑$22手机$22 方式一&#xff1a;MAX…...

MySQL5.7 与 MariaDB10.1 审计插件兼容性验证

这是一篇关于发现 MariaDB 审计插件导致 MySQL 发生 crash 后&#xff0c;展开适配验证并进行故障处理的文章。 作者&#xff1a;官永强 爱可生DBA 团队成员&#xff0c;擅长 MySQL 运维方面的技能。热爱学习新知识&#xff0c;亦是个爱打游戏的宅男。 本文来源&#xff1a;原创…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层&#xff08;GATT/Adv&#xff09;局限性&#xff1a; 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能&#xff0c;如 Configuration …...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...