位置: IT常识 - 正文

【云原生 | 23】Docker运行Web服务实战之Tomcat(云原生是什么)

编辑:rootadmin
【云原生 | 23】Docker运行Web服务实战之Tomcat

推荐整理分享【云原生 | 23】Docker运行Web服务实战之Tomcat(云原生是什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:云原生是什么,云原生是什么,云原生到底是什么,云原生是什么,云原生是什么,云原生 百度百科,云原生什么意思,云原生 百度百科,内容如对您有帮助,希望把文章链接给更多的朋友!

作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道第一名🏅 阿里云ACE认证高级工程师🏅 ✒️个人主页:小鹏linux 💊个人社区:小鹏linux(个人社区)欢迎您的加入!

为大家推荐一款刷题神奇 点击链接访问牛客网

各大互联网大厂面试真题。基础题库到进阶题库等各类面试题应有尽有!

牛客网面经合集,满足大厂面试技术深度,快速构建Java核心知识体系大厂面试官亲授,备战面试与技能提升,主要考点+主流场景+内功提升+真题解析

目录

1. 关于Tomcat

2. 准备工作 

3. Dockerfile文件和其他脚本文件 

4. 创建和测试镜像 

 👑👑👑结束语👑👑👑


1. 关于Tomcat

 Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和Java Server Page(JSP)的支持。同时,它提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,也可以当作一个单独的Web服务器来使用。下面介绍如何定制Tomcat镜像。

首先,尝试在Docker Hub上搜索已有的Tomcat相关镜像的个数:

$ docker search tomcat | wc -l285

 可以看到,已经有285个相关镜像。如是个人开发或测试,可以随意选择一个镜像,按照提示启动应用即可。

下面以Tomcat 7.0为例介绍定制Tomcat镜像的步骤。

2. 准备工作 

 创建tomcat7.0_jdk1.6文件夹,从www.oracle.com网站上下载sun_jdk1.6压缩包,解压为jdk目录

创建Dockerfile和run.sh文件:

$ mkdir tomcat7.0_jdk1.6$ cd tomcat7.0_jdk1.6/ $ touch Dockerfile run.sh下载Tomcat,可以到官方网站下载最新的版本,也可以直接使用下面链接中给出的版本:$ wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.56/bin/apache-tomcat- 7.0.56.zip解压后,tomcat7.0_jdk1.6目录结构应如下所示(多余的压缩包文件已经被删除):$ lsDockerfile apache-tomcat-7.0.56 jdk run.sh3. Dockerfile文件和其他脚本文件 【云原生 | 23】Docker运行Web服务实战之Tomcat(云原生是什么)

 Dockerfile文件内容如下:

FROM sshd:Dockerfile#设置继承自用户创建的sshd镜像MAINTAINER docker_user (user@docker.com)#下面是一些创建者的基本信息#设置环境变量,所有操作都是非交互式的ENV DEBIAN_FRONTEND noninteractive#注意这里要更改系统的时区设置RUN echo "Asia/Shanghai" > /etc/timezone && \ dpkg-reconfigure -f noninteractive tzdata#安装跟tomcat用户认证相关的软件RUN apt-get install -yq --no-install-recommends wget pwgen ca-certificates && \ apt-get clean && \ rm -rf /var/lib/apt/lists/*#设置tomcat的环境变量,若读者有其他的环境变量需要设置,也可以在这里添加。ENV CATALINA_HOME /tomcat ENV JAVA_HOME /jdk#复制tomcat和jdk文件到镜像中ADD apache-tomcat-7.0.56 /tomcat ADD jdk /jdk ADD create_tomcat_admin_user.sh /create_tomcat_admin_user.sh ADD run.sh /run.sh RUN chmod +x /*.sh RUN chmod +x /tomcat/bin/*.shEXPOSE 8080 CMD ["/run.sh"]

创建tomcat用户和密码脚本文件create_tomcat_admin_user.sh文件,内容为:

#!/bin/bashif [ -f /.tomcat_admin_created ]; then echo "Tomcat 'admin' user already created" exit 0fi#generate password PASS=${TOMCAT_PASS:-$(pwgen -s 12 1)} _word=$( [ ${TOMCAT_PASS} ] && echo "preset" || echo "random" ) echo "=> Creating and admin user with a ${_word} password in Tomcat" sed -i -r 's/<\/tomcat-users>//' ${CATALINA_HOME}/conf/tomcat-users.xml echo '<role rolename="manager-gui"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml echo '<role rolename="manager-script"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml echo '<role rolename="manager-jmx"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml echo '<role rolename="admin-gui"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml echo '<role rolename="admin-script"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml echo "<user username=\"admin\" password=\"${PASS}\" roles=\"manager-gui,manager- script,manager-jmx,admin-gui, admin-script\"/>" >> ${CATALINA_HOME}/conf/ tomcat-users.xml echo '</tomcat-users>' >> ${CATALINA_HOME}/conf/tomcat-users.xmlecho "=> Done!" touch /.tomcat_admin_created echo "========================================================================" echo "You can now configure to this Tomcat server using:" echo "" echo " admin:${PASS}" echo "" echo "========================================================================"

编写run.sh脚本文件,内容为:

#!/bin/bashif [ ! -f /.tomcat_admin_created ]; then /create_tomcat_admin_user.sh fi/usr/sbin/sshd -D & exec ${CATALINA_HOME}/bin/catalina.sh run4. 创建和测试镜像 

通过下面的命令创建镜像tomcat7.0:jdk1.6:

$ docker build -t tomcat7.0:jdk1.6 .

启动一个tomcat容器进行测试:

$ docker run -d -P tomcat7.0:jdk1.6 3cd4238cb32a713a3a1c29d93fbfc80cba150653b5eb8bd7629bee957e7378ed

通过docker logs得到tomcat的密码aBwN0CNCPckw:

$ docker logs 3cd=> Creating and admin user with a random password in Tomcat => Done! ======================================================================== You can now configure to this Tomcat server using: admin:aBwN0CNCPckw

查看映射的端口信息:

$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3cd4238cb32a tomcat7.0:jdk1.6 "/run.sh" 4 seconds ago Up 3 seconds 0.0.0.0:49157->22/tcp, 0.0.0.0:49158->8080/tcp cranky_wright在本地使用浏览器登录Tomcat管理界面,访问本地的49158端口,即http://127.0.0.1:49158,如图

输入从docker logs中得到的密码,如图所示。

成功进入管理界面,如图

在生产环境中,可以通过使用-v参数来挂载Tomcat的日志文件、程序所在目录、以及与Tomcat相关的配置。 👑👑👑结束语👑👑👑

为大家推荐一款刷题神奇 点击链接访问牛客网

各大互联网大厂面试真题。基础题库到进阶题库等各类面试题应有尽有!

牛客网面经合集,满足大厂面试技术深度,快速构建Java核心知识体系大厂面试官亲授,备战面试与技能提升,主要考点+主流场景+内功提升+真题解析

本文链接地址:https://www.jiuchutong.com/zhishi/297856.html 转载请保留说明!

上一篇:[JavaScript你真的以为这么简单吗]JavaScript高级

下一篇:Win11任务管理器不显示GPU怎么办?三种方法解决(win11任务管理器卡死没响应)

  • 戴口罩怎么面容识别解锁iPhone(戴口罩怎么面容识别解锁iPhonex)

    戴口罩怎么面容识别解锁iPhone(戴口罩怎么面容识别解锁iPhonex)

  • 一加手机怎么样(一加手机属于什么档次)

    一加手机怎么样(一加手机属于什么档次)

  • windows7中个性化设置包括什么(windows7中个性化设置不包括)

    windows7中个性化设置包括什么(windows7中个性化设置不包括)

  • 苹果电脑开机白屏怎么办(苹果电脑开机白苹果)

    苹果电脑开机白屏怎么办(苹果电脑开机白苹果)

  • 固态硬盘做剪辑会快吗(固态硬盘剪视频)

    固态硬盘做剪辑会快吗(固态硬盘剪视频)

  • iqooz1摄像头型号(iqooz1参数)

    iqooz1摄像头型号(iqooz1参数)

  • 有无线的摄像头吗(有无线的摄像头有哪些)

    有无线的摄像头吗(有无线的摄像头有哪些)

  • start windows normally是什么意思(start windows normally后黑屏)

    start windows normally是什么意思(start windows normally后黑屏)

  • windows7升级10文件会丢失吗(windows7升级到10)

    windows7升级10文件会丢失吗(windows7升级到10)

  • 苹果手机有流量但是无法连接网络(苹果手机有流量但是无法上网)

    苹果手机有流量但是无法连接网络(苹果手机有流量但是无法上网)

  • wps项目符号在哪里(wps文字项目符号)

    wps项目符号在哪里(wps文字项目符号)

  • 闲鱼不退不换受保护吗(闲鱼不退不换受影响吗)

    闲鱼不退不换受保护吗(闲鱼不退不换受影响吗)

  • 淘宝不评价多久会自动消(淘宝不评价多久自动评价)

    淘宝不评价多久会自动消(淘宝不评价多久自动评价)

  • 手机亮度自动调节怎么设置(手机亮度自动调节关闭了还会自动调节)

    手机亮度自动调节怎么设置(手机亮度自动调节关闭了还会自动调节)

  • addons为什么一直在加载(addons为什么一直加载不出来)

    addons为什么一直在加载(addons为什么一直加载不出来)

  • 华为p40pro是双卡吗(华为p40pro是双卡卡槽在哪里)

    华为p40pro是双卡吗(华为p40pro是双卡卡槽在哪里)

  • 手机上显示耳机状态没有声音(手机上显示耳机标志没声音怎么办)

    手机上显示耳机状态没有声音(手机上显示耳机标志没声音怎么办)

  • 小米9pro什么时候发布(小米9pro什么时候上市)

    小米9pro什么时候发布(小米9pro什么时候上市)

  • 存储容量1tb等于(1tb等于多少gb内存)

    存储容量1tb等于(1tb等于多少gb内存)

  • iphone11和pro拍照区别(苹果11和pro拍照)

    iphone11和pro拍照区别(苹果11和pro拍照)

  • ibm是什么牌子的电脑(ibm是哪个国家的品牌)

    ibm是什么牌子的电脑(ibm是哪个国家的品牌)

  • 瞥见的意思(一眼瞥见的意思)

    瞥见的意思(一眼瞥见的意思)

  • 抖音视频怎么横过来看(抖音视频怎么横屏上传)

    抖音视频怎么横过来看(抖音视频怎么横屏上传)

  • 爱奇艺字幕没了怎么办(爱奇艺字幕没了怎么办手机版)

    爱奇艺字幕没了怎么办(爱奇艺字幕没了怎么办手机版)

  • vivox27能反向充电吗(vivox27能不能反向充电)

    vivox27能反向充电吗(vivox27能不能反向充电)

  • 苹果xr前面的灯怎么开(苹果xr前面的灯闪烁怎么弄)

    苹果xr前面的灯怎么开(苹果xr前面的灯闪烁怎么弄)

  • linux CentOS WEB服务器分区方案

    linux CentOS WEB服务器分区方案

  • 维修费税率是13的话归口什么类别
  • 工资申报是当月申报当月的吗
  • 出口退税进项税额转出怎么申报
  • 教育培训行业税负率是多少
  • 金税四期什么时候全国运行
  • 物业公司停车费按什么征税
  • 软件企业两免三减半备案条件
  • 付款给对方未开具发票
  • 没有认证的发票怎么做分录
  • 远期采购合同会查吗
  • 营改增后11
  • 从公账转账私人转账
  • 个人转让认缴出资股权需要交纳印花税吗?
  • 事业单位退休人员独生子女费如何发放
  • 减免税额结转到待认证是什么意思
  • 小规模纳税人收到专票有什么影响
  • 银行开户存入的钱怎么取
  • 建筑业开票内容
  • 公司出租商铺要交哪些税
  • 新准则 预提费用
  • 如何按增值税计税
  • 汇算清缴相关分录有哪些
  • 收到融资租赁发票怎么做账
  • 应收账款周转率越大越好还是越小越好
  • 公转私用途最好写借款
  • 企业计提房产税的会计处理正确的是
  • 鸿蒙系统怎么去掉负一屏
  • 已计提但未上缴税款
  • win11dev预览版可以升级正式版吗
  • 胡山森林公园门票多少钱一张
  • 车辆购置税征收对象
  • 公允模式投资性房地产出售
  • 购车的进项税怎么抵扣
  • 纳税人未抄报税不能进行申报,怎么办
  • javaweb购物车设计报告
  • yolov5实例分割原理详解
  • 注意力机制加在CNN的什么位置
  • idea2020.2.3创建web
  • ssh非交互式登录
  • 购物卡怎么开发票比较好
  • 无偿划转资产涉及产权转移应交税
  • 苗木可以进项抵扣的么
  • 个人所得税生产经营所得B表
  • 小微企业增值税免税政策2023年
  • 未开票收入下月开票
  • 新手搭建一个织布机
  • 预缴所得税亏损费用金额大会被监测到吗?
  • 一张记账凭证写不下时合计怎么写
  • 建筑企业工程结算账务处理
  • 出口属于什么行业
  • 房租押金需要缴税吗
  • 浅谈数据库优化设计
  • 公司自有房产出租给员工如何处理
  • 采购人员差旅费为什么不计入成本
  • 年金现值的含义
  • 收到国外客户的货款怎么做账
  • 销项税计提多了
  • 增值税留抵情况下要交流转税吗
  • 资产减值损失年报怎么调整
  • 本月应付电费计入哪个账户
  • 篮球俱乐部归什么部门管理
  • 企业预交所得税税率
  • sqlserver自动生成id
  • record关键字
  • mysql varchar类型
  • sql server中数据类型怎么用
  • mysql千万级分页优化
  • mysql和c
  • 通用pe工具箱安装win7
  • win7系统怎么禁止软件自启动
  • win10mobile升级顾问
  • ubuntu touch怎么刷入
  • shell监控脚本例子大全
  • javascript构造函数可继承父类的构造函数
  • unity2018.4破解
  • 江西增值税发票查询
  • 云开票怎么报税
  • 金税盘和uk
  • 经营网络订单可以退款吗
  • 国税局发票查询电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设