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

  • 支付宝怎么删除好友(支付宝怎么删除余额变动明细)

    支付宝怎么删除好友(支付宝怎么删除余额变动明细)

  • 苹果xs max人脸识别不了(苹果xsmax人脸识别坏了能修好吗)

    苹果xs max人脸识别不了(苹果xsmax人脸识别坏了能修好吗)

  • mate30详细功能(华为mate30功能大全)

    mate30详细功能(华为mate30功能大全)

  • 此条微博暂不支持变更可见范围(此条微博暂不支持怎么办)

    此条微博暂不支持变更可见范围(此条微博暂不支持怎么办)

  • 华为手表和oppo手机能不能匹配(华为手表和OPPO手表哪个性价比高)

    华为手表和oppo手机能不能匹配(华为手表和OPPO手表哪个性价比高)

  • 快手怎么播放别人的视频(快手怎么播放别的电影)

    快手怎么播放别人的视频(快手怎么播放别的电影)

  • 抖音私信消息不显示(抖音私信消息不显示红点了)

    抖音私信消息不显示(抖音私信消息不显示红点了)

  • 电脑屏幕亮了但是打不开怎么回事(电脑屏幕亮了但是不显示画面)

    电脑屏幕亮了但是打不开怎么回事(电脑屏幕亮了但是不显示画面)

  • cpu坏了能修吗(手机主板cpu坏了能修吗)

    cpu坏了能修吗(手机主板cpu坏了能修吗)

  • 双11最迟发货时间是多少(双十一发货最迟多少天可以要求补偿)

    双11最迟发货时间是多少(双十一发货最迟多少天可以要求补偿)

  • 微信如何调成黑色(微信如何调成黑屏模式)

    微信如何调成黑色(微信如何调成黑屏模式)

  • 锁屏状态下微信不提示怎么设置(锁屏状态下微信视频来电没有声音)

    锁屏状态下微信不提示怎么设置(锁屏状态下微信视频来电没有声音)

  • 畅玩5x支持电信物联卡吗(畅玩5x电信版)

    畅玩5x支持电信物联卡吗(畅玩5x电信版)

  • iphone11pro与pro max区别(iphone11pro与promax)

    iphone11pro与pro max区别(iphone11pro与promax)

  • 华为手机如何测心率(华为手机如何测量尺寸)

    华为手机如何测心率(华为手机如何测量尺寸)

  • 苹果11信息有个感叹号(苹果11信息有个感叹号怎么取消)

    苹果11信息有个感叹号(苹果11信息有个感叹号怎么取消)

  • 计算机上的on键表示什么(计算机上的ON键和AC键是什么意思)

    计算机上的on键表示什么(计算机上的ON键和AC键是什么意思)

  • 荣耀v20怎么设置24小时制(荣耀v20怎么设置指纹锁屏)

    荣耀v20怎么设置24小时制(荣耀v20怎么设置指纹锁屏)

  • 显卡如何安装(显卡如何安装水冷)

    显卡如何安装(显卡如何安装水冷)

  • 如何解除微信收款异常(如何解除微信收款限制)

    如何解除微信收款异常(如何解除微信收款限制)

  • 快手怎么看观看人数(快手怎么看观看记录)

    快手怎么看观看人数(快手怎么看观看记录)

  • 监控对方微信是真的吗(监控对方微信聊天记录是真的吗)

    监控对方微信是真的吗(监控对方微信聊天记录是真的吗)

  • iphone xr有没有红外线(苹果xr红色是什么颜色的红)

    iphone xr有没有红外线(苹果xr红色是什么颜色的红)

  • 帝国cms系统怎么换文章展示的标题图片(帝国cms使用手册)

    帝国cms系统怎么换文章展示的标题图片(帝国cms使用手册)

  • 自查补报以前年度收入可以补在当前属期吗
  • 公车私车税收区别
  • 办税员可以购票吗?
  • 单位当月未扣社保怎么处理分录?
  • 投资款转账没备案怎么办
  • 我公司给对方公司付款
  • 估算成本的会计要素
  • 亏损可以不用缴增值税吗
  • 账务核对有账表核对吗
  • 公司收到银行承兑汇票怎么做分录
  • 接受投资者的无形资产
  • 房地产开发企业会计科目
  • 应交税费计提是借方还是贷方
  • 个体户个人所得税税率表2023计算
  • 开具电费发票说明
  • 超市个体工商户怎么取名
  • 公司解散实收资本会计怎么处理
  • 企业的不征税收入用于支出所形成的资产
  • 职工食堂租赁费
  • 累计折旧属于什么
  • 接受应税劳务的会计分录怎么写
  • 会计审核票据如何签字
  • 个人独资企业怎么取钱
  • 补提去年所得税分录
  • 电脑维修会不会对电脑有影响
  • php8底层内核
  • deepin隐藏分区
  • 戛纳,法国 (© Manjik Photography/Alamy)
  • 支付保证金需要附件
  • 用约当产量法怎么计算约当总产量
  • 企业所得税税款
  • 奇托尔加赫城堡
  • PHP:diskfreespace()的用法_Filesystem函数
  • 待抵扣进项税额借贷方向
  • 报废的设备怎么处理
  • 小规模负数发票怎么申报增值税
  • vue viewui
  • 微信公众号开发用什么语言
  • 车船税是不是车损
  • 注册公司行业分类有多少种
  • 设备安装收入税率
  • 累计销售额怎么算
  • 金税盘怎么向分盘分配发票
  • 工资税预扣
  • sql server搜索语句
  • SQL查询中in和exists的区别分析
  • 不同企业可以开专票吗
  • 金税盘技术服务费怎么交费
  • 暂估入库有时间限制吗
  • 普通发票的进项票怎么做分录
  • 发票红冲重开是退个税吗
  • 收到退回的企业所得税会计分录
  • 开了假发票什么后果?
  • 网吧的收入怎么做账
  • 原始凭证按什么分
  • 股东退股如何清算
  • 在途物资入库怎么记账
  • 财务控制的方法和措施
  • sql server怎么创建表语句
  • 手机如何使用windows
  • centos挂载点
  • win7输入法图标不见了怎么恢复正常
  • ubuntu安装教程14.04
  • dnssne是什么意思
  • centos6 centos7区别
  • 运行ghost
  • cocos安装
  • 事件委托实现
  • linux升级python2.7
  • linux那么多命令怎么记
  • OpenGL ES Emulator比较
  • 如何使用jquery插件
  • jqueryvalidate验证
  • jquery获取table的tr
  • easyui 弹框
  • 进项票当月认证怎么操作
  • 关税由谁来承担
  • 贵州泉源会计服务有限公司花溪店位置
  • 目前我国现行法规规定的职业病范围共有几大类几种
  • 国际税务网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设