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

  • excel截图怎么往下拉(excel中截图中怎样转变为内容)

    excel截图怎么往下拉(excel中截图中怎样转变为内容)

  • 如何找回微信聊天记录(如何找回微信聊天记录并恢复安卓)

    如何找回微信聊天记录(如何找回微信聊天记录并恢复安卓)

  • 交换机有哪几种模式(交换机有哪几种型号)

    交换机有哪几种模式(交换机有哪几种型号)

  • 苹果录屏微信视频聊天没声音(苹果录屏微信视频无法存储)

    苹果录屏微信视频聊天没声音(苹果录屏微信视频无法存储)

  • 电脑主机可以横着放吗(电脑主机可以横着搬运吗)

    电脑主机可以横着放吗(电脑主机可以横着搬运吗)

  • 此评论暂时无法回复(此评论暂时无法发送)

    此评论暂时无法回复(此评论暂时无法发送)

  • 华为无线充电器可以充苹果吗(华为无线充电器闪灯不充电)

    华为无线充电器可以充苹果吗(华为无线充电器闪灯不充电)

  • blued账号被锁定怎么解除(blued账号被锁定怎么解锁)

    blued账号被锁定怎么解除(blued账号被锁定怎么解锁)

  • 钉钉投票管理员可以看到吗(钉钉设置投票)

    钉钉投票管理员可以看到吗(钉钉设置投票)

  • 魅族m1813是什么手机(魅族m1813参数)

    魅族m1813是什么手机(魅族m1813参数)

  • 听筒模式是干嘛用的

    听筒模式是干嘛用的

  • 世界上第一台计算机的电子元器件是什么(世界上第一台计算机的电子元器件主要是)

    世界上第一台计算机的电子元器件是什么(世界上第一台计算机的电子元器件主要是)

  • word除号怎么打(word中除号怎么打)

    word除号怎么打(word中除号怎么打)

  • 有锁机可以在官网换机吗(有锁机可以在官网上买吗)

    有锁机可以在官网换机吗(有锁机可以在官网上买吗)

  • 手机通话声音怎么调(手机通话声音怎么调大小)

    手机通话声音怎么调(手机通话声音怎么调大小)

  • 携程订票怎么取消套餐(携程订票怎么取消订单)

    携程订票怎么取消套餐(携程订票怎么取消订单)

  • 一加7pro的缺点(一加7pro优缺点总结)

    一加7pro的缺点(一加7pro优缺点总结)

  • 苹果x手机支持5g网络吗(苹果X手机支持北斗导航吗)

    苹果x手机支持5g网络吗(苹果X手机支持北斗导航吗)

  • retina显示屏相当于几k(retina屏和led屏)

    retina显示屏相当于几k(retina屏和led屏)

  • 手机qq为什么不能安装(手机QQ为什么不能发文件)

    手机qq为什么不能安装(手机QQ为什么不能发文件)

  • 解决小米6通话声音小(解决小米6通话异常)

    解决小米6通话声音小(解决小米6通话异常)

  • 微信的微云在哪里打开(微信中的微云在哪)

    微信的微云在哪里打开(微信中的微云在哪)

  • 美国宇航局新视野星际探测器拍摄的冥王星新月 (© NASA/JHUAPL/SWRI/Science Photo Library)(美国宇航局视频)

    美国宇航局新视野星际探测器拍摄的冥王星新月 (© NASA/JHUAPL/SWRI/Science Photo Library)(美国宇航局视频)

  • BootStrap基本使用(bootstrap步骤)

    BootStrap基本使用(bootstrap步骤)

  • mmove命令  移动文件或目录(move命令移动文件夹下所有文件)

    mmove命令 移动文件或目录(move命令移动文件夹下所有文件)

  • 无偿使用房产需要交哪些税
  • 交增值税及附加税怎么做账
  • 跨年度进项税额转出怎么申报
  • 出租车发票上没有二维码
  • 工程结算成本和合同成本区别
  • 个体户一季度不超过30
  • 其他收入月末需要结账吗
  • 软件开发减免的流转税是否缴纳所得税
  • 会计核算体系的建立
  • 无形资产增资账务处理
  • 年末本年利润结转未分配利润
  • 契税的计税金额是什么
  • 非营利组织注册登记证件图片
  • 车间员工的质量管理制度
  • 应有财务软件
  • 工程安装公司是干嘛的
  • 91开头的税号是什么
  • 银行承兑汇票盖章错误证明
  • 公车私用情形有哪些
  • 企业所得税如何缴纳
  • 普通发票汇总上传
  • 去银行打回单需要带身份证吗
  • u盘启动器安装系统
  • .exe文件怎么打不开
  • 会计利润利润总额的计算
  • h5实现扫码功能
  • php随机ua
  • 周转材料摊销是什么科目
  • 企业退货产生的损失谁承担
  • 企业借款费用处理不当会产生什么样的后果呢?
  • 车辆购置税税收缴款书
  • 莫纳皮拉
  • 应收账款净额可以是负数吗
  • 账龄分析法计提比例
  • 珀斯临近什么洋
  • 财税[1994]26号
  • 小程序开发公司十大排名
  • Cookie和Session的区别,各自的使用方法及常用操作
  • Java多线程(6):锁与AQS(中)
  • 经营性应收项目和经营性应付项目
  • 弃置费用预计负债的摊余成本
  • 材料采购成本是什么科目
  • 无偿提供房屋使用证明有什么后果
  • 处置固定资产净收益属于利得吗
  • 自然人独资公司可以变更法人吗
  • 支付宝付款,对方能看见是花呗还是银行卡么
  • 现金流量表里支付的各项税费包括什么
  • 跨月抵扣的发票能退回吗
  • 公司实行全成本核算工资怎么算
  • 工业企业销售分录
  • 长期借款账务处理会计分录
  • 个税起征点提高的意义
  • 应交增值税为什么在借方
  • 小企业会计准则和一般企业会计准则的区别
  • 不是企业职工能否挂靠企业交社保
  • 收到银行利息记什么会计科目
  • 工程类发票账务后面需附什么单据呢
  • 库存数据不准确
  • sqlserver提示功能怎么打开
  • 怎么设置win7密码
  • windows防病毒
  • vc6_cn_full.exe
  • 如何查看winxp系统的运行内存
  • macair蓝牙用不了
  • win8引导盘
  • pcc是什么文件
  • win10里的运行
  • win7如何设置网络连接路由器
  • 批处理call命令
  • shell脚本实现文件移动、复制等操作
  • javascript 对象
  • jQuery中text() val()和html()的区别实例详解
  • 税务机关一案双查管理办法
  • 江苏昆山电费查询电话
  • 个体户定额怎么查询
  • 江西省税务局发票查询系统
  • 印花税计征周期
  • 江苏税务个税查询
  • 车价为150万的进口车型
  • 物业优质服务我们在行动
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设