位置: 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任务管理器卡死没响应)

  • 华为小艺小艺在哪设置(华为小艺小艺在哪关闭)

    华为小艺小艺在哪设置(华为小艺小艺在哪关闭)

  • 表格怎么把井号变数字(做表格单元格里面井号怎么变成数字)

    表格怎么把井号变数字(做表格单元格里面井号怎么变成数字)

  • 小米pdf查看器怎么打开(小米pdf查看器怎么横屏)

    小米pdf查看器怎么打开(小米pdf查看器怎么横屏)

  • 怎么蹭网(怎么蹭网最简单的方法)

    怎么蹭网(怎么蹭网最简单的方法)

  • 微信视频没提醒声音如何设置(微信发不了视频怎么回事)

    微信视频没提醒声音如何设置(微信发不了视频怎么回事)

  • 拉杆音响充不进电(拉杆音响充不进去电但是接电源能用)

    拉杆音响充不进电(拉杆音响充不进去电但是接电源能用)

  • qq龙王有什么用(qq龙王能干嘛)

    qq龙王有什么用(qq龙王能干嘛)

  • mate30pro是3d结构光还是tof

    mate30pro是3d结构光还是tof

  • wps段落布局按钮隐藏了怎么出来(wps段落布局按钮怎么设置)

    wps段落布局按钮隐藏了怎么出来(wps段落布局按钮怎么设置)

  • pro和max的区别(华为pro和max的区别)

    pro和max的区别(华为pro和max的区别)

  • 华为nova6上面的黑点怎么用(华为nova6上面的微信被隐藏了,怎么办)

    华为nova6上面的黑点怎么用(华为nova6上面的微信被隐藏了,怎么办)

  • 小米保修期内换电池免费吗(小米保修期内换摄像头要钱吗)

    小米保修期内换电池免费吗(小米保修期内换摄像头要钱吗)

  • 热点的距离多少米(热点距离多少能用)

    热点的距离多少米(热点距离多少能用)

  • coolpad手机图案密码忘了怎么办(coolpad手机图案忘了怎么开锁)

    coolpad手机图案密码忘了怎么办(coolpad手机图案忘了怎么开锁)

  • 手机支持sa和nsa是什么意思(手机支持sa和nsa双模是什么意思)

    手机支持sa和nsa是什么意思(手机支持sa和nsa双模是什么意思)

  • 文字处理程序是应用软件吗(文字处理程序是英文)

    文字处理程序是应用软件吗(文字处理程序是英文)

  • 手机qq空间怎么设置锁(手机qq空间怎么批量删除说说)

    手机qq空间怎么设置锁(手机qq空间怎么批量删除说说)

  • 小米步数在哪设置(小米步数设置)

    小米步数在哪设置(小米步数设置)

  • 百兆交换机能带几个摄像头(百兆交换机能带几个300万摄像头)

    百兆交换机能带几个摄像头(百兆交换机能带几个300万摄像头)

  • Win11如何修改任务栏大小 Win11修改任务栏大小方法(win11如何修改任务栏颜色)

    Win11如何修改任务栏大小 Win11修改任务栏大小方法(win11如何修改任务栏颜色)

  • 深度学习第一步——Pytorch-Gpu环境配置:Win11/Win10+Cuda10.2+cuDNN8.5.0+Pytorch1.8.0(步步巨细,少走十年弯路)

    深度学习第一步——Pytorch-Gpu环境配置:Win11/Win10+Cuda10.2+cuDNN8.5.0+Pytorch1.8.0(步步巨细,少走十年弯路)

  • 详解Java解析XML的四种方法(java解析xml常用方式)

    详解Java解析XML的四种方法(java解析xml常用方式)

  • 个人所得税可以退吗
  • 城市公交算国企吗
  • 印花税的征税对象是条例列举的凭证未列举的不征税
  • 税控盘的功能特点是
  • 待转销项税额是几级科目
  • 企业纳税证明是什么
  • 医药行业发票税率
  • 两个日期连在一起怎么写
  • 报销单的经办人写自己吗
  • 预提车间租入固定资产租金800元
  • 物业费计入哪里
  • 养老险的基数
  • 微信手续费发票可以抵扣吗?
  • 招标代理公司转让
  • 付给私人股权转让权怎么做分录?
  • 凭证工本费的账务处理
  • 中国银行结算包括哪些内容?怎么做会计分录?
  • 企业的耕地占用税怎么算
  • 企业利用个体户走账
  • 公司账户境外汇款
  • 税种案例分析
  • 国家税务总局13号文
  • 税收预测表怎么填写
  • 个体工商户季度申报报税流程
  • 差额增值税计算公式
  • 入库单的金额填不填价税合计
  • 历史时间线怎么写
  • 配置path环境变量
  • php大量数据处理
  • 代收代付的垃圾清运费没发票能入账吗
  • 总公司人员的工资子公司发,如何报税?
  • 马哈拉施特拉邦人口
  • php异步处理方案
  • nlp工具箱
  • 企业存货期末应如何计价
  • 科技推广和应用服务业行业
  • 上市公司回购股票意味着什么
  • 增值税发票的作业
  • 微信php开发包
  • ps橡皮擦不是圆圈了
  • 其他应收款检查表怎么填
  • 个体工商户社保扣费不成功
  • 新会计准则分录大全
  • 工程施工预缴增值税
  • 一般人转小规模政策文号
  • 分公司需要做纳税申报吗
  • 百度编辑器使用方法
  • 报销货物运输费需要什么凭证
  • 个税系统经营所得人员怎样添加
  • 恢复从回收站已经清除的文件
  • 车船税不计入发票
  • 私车公用发票去哪个税务局开
  • 发生的计提费用没有发生怎么办
  • 小规模纳税人免税政策2023年
  • 营改增后增值税增加了什么征收范围
  • 建筑施工企业会计第三版单旭课后题答案
  • 为什么贷款要收手续费
  • 员工异地工作
  • 建筑业发票的相关要求
  • 担保属于债权吗
  • 开红字发票购买方和销货方有哪些操作不同?
  • 填写增值税纳税申报怎么填写?
  • 借用别的公司资质的协议范本
  • 出表的好处
  • sql,join
  • win7系统怎么关闭病毒防护
  • 电脑安装了安卓系统没用
  • 如何关掉数据
  • mac 10.8.5升级
  • 双系统卸载deepin
  • linux挂载的概念
  • 拦截器 aop
  • linux中的shell命令
  • javascript 基础
  • jstree异步加载
  • 安卓两页合并到下一页
  • 税率是从什么时候有17%改为13%的呢
  • 吉林税务发票自动查询系统网
  • 医务人员抗疫补助发放标准最新
  • 非居民企业机构场所核定征收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设