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

  • 怎样更快的让未收录的页面尽快被收录(如何让1)

    怎样更快的让未收录的页面尽快被收录(如何让1)

  • word公式编辑器在哪里(word公式编辑器怎么调出来)

    word公式编辑器在哪里(word公式编辑器怎么调出来)

  • 有信电话对方账号被冻结什么意思(有信电话对方账户被冻结)

    有信电话对方账号被冻结什么意思(有信电话对方账户被冻结)

  • 抖音怎样才能得到发字(抖音怎样才能得到拉萨明信片)

    抖音怎样才能得到发字(抖音怎样才能得到拉萨明信片)

  • 淘宝卖家手机版是什么软件(淘宝卖家手机版下载)

    淘宝卖家手机版是什么软件(淘宝卖家手机版下载)

  • 转转卖家不发货怎么办(转转卖家不发货能收到钱吗)

    转转卖家不发货怎么办(转转卖家不发货能收到钱吗)

  • 抖音怎么看音浪收入(抖音怎么看音浪总榜)

    抖音怎么看音浪收入(抖音怎么看音浪总榜)

  • 苹果x充满能玩多久(苹果x充满电玩游戏能玩多久)

    苹果x充满能玩多久(苹果x充满电玩游戏能玩多久)

  • 剪映9:16比例为什么还是原屏呢(剪映里比例原则9比16后不是横视频)

    剪映9:16比例为什么还是原屏呢(剪映里比例原则9比16后不是横视频)

  • 网络连接异常是怎么回事(网络连接异常是手机的问题吗)

    网络连接异常是怎么回事(网络连接异常是手机的问题吗)

  • 开飞行模式能收到短信吗(开飞行模式能收到验证码吗)

    开飞行模式能收到短信吗(开飞行模式能收到验证码吗)

  • 怎么去除图片上的涂鸦(怎么去除图片上的遮盖图)

    怎么去除图片上的涂鸦(怎么去除图片上的遮盖图)

  • 苹果7可以快充吗(苹果7可以快充20w吗)

    苹果7可以快充吗(苹果7可以快充20w吗)

  • 快手一天能点多少双击(快手一天能点多少收藏)

    快手一天能点多少双击(快手一天能点多少收藏)

  • ipad怎么打特殊符号(ipad怎么打出艾特的符号)

    ipad怎么打特殊符号(ipad怎么打出艾特的符号)

  • 双十一的红包退款后还有吗(双十一的红包退款了还能用吗)

    双十一的红包退款后还有吗(双十一的红包退款了还能用吗)

  • 华为移动服务在哪打开(华为移动服务啥意思)

    华为移动服务在哪打开(华为移动服务啥意思)

  • 荣耀8青春版支持快充吗(荣耀8青春版支持电信volte吗)

    荣耀8青春版支持快充吗(荣耀8青春版支持电信volte吗)

  • 微信在哪里注册新账号(微信在哪里注册小号)

    微信在哪里注册新账号(微信在哪里注册小号)

  • vivo手机拍夜景怎么调(vivo手机拍夜景相机参数设置)

    vivo手机拍夜景怎么调(vivo手机拍夜景相机参数设置)

  • jkmtl00华为什么型号(jkmtl00b华为什么型号)

    jkmtl00华为什么型号(jkmtl00b华为什么型号)

  • x27屏幕尺寸(vivix27屏幕尺寸)

    x27屏幕尺寸(vivix27屏幕尺寸)

  • oppoA57是什么处理器(oppo a57是什么)

    oppoA57是什么处理器(oppo a57是什么)

  • 华为p30有哪些功能(华为p30有哪些功能设置)

    华为p30有哪些功能(华为p30有哪些功能设置)

  • 局域网的工作模式是什么?(局域网的工作模式及特点)

    局域网的工作模式是什么?(局域网的工作模式及特点)

  • Word中更改单页纸的页面方向(word更改单页背景颜色)

    Word中更改单页纸的页面方向(word更改单页背景颜色)

  • 转让股份的印花税怎么交
  • 企业增值税税负率怎么计算
  • 国税税务登记号查询
  • 销售佣金 个税
  • 银行应发贷款和实际收到的贷款为什么不一致
  • 事业单位资产负责比往年增加表明什么
  • 开票就必须要交个税吗
  • 加工企业怎么记账
  • 销售使用过的汽车如何缴纳增值税
  • 物流企业信用评级
  • 票据贴现利息怎么开发票
  • 年度结转之前需要做什么
  • 货款为现金如何做记账账款凭证?
  • 过期食品翻新
  • 异地设立分公司可以独立核算吗
  • 最新房产税消息2020
  • 自己从自己公司直接拿钱是犯罪吗知乎
  • 公司两套账怎么记账
  • 出售固定资产属于收入
  • 加油可以吗
  • win7免费升级
  • 非货币性资产是无形资产吗
  • 服务业缴税
  • ajax调用php函数
  • php smarty
  • php怎么配置环境
  • 怀特岛郡国旗
  • 失业保险稳岗补贴是给个人的还是给企业的
  • hdaudpropshortcut.exe是什么进程 作用是什么 hdaudpropshortcut进程查询
  • 冷漠的渡鸦们,美国阿拉斯加州 (© Brian Browitt Photo/Adobe Stock)
  • 电脑上fci是什么文件
  • flex布局子元素height100
  • 研发人员工资计入什么科目
  • 成本费用做账
  • 建筑装饰工程公司属于什么行业
  • 贷款需要考虑什么
  • 汽车上牌照的费用计入什么会计科目
  • PostgreSQL安装、配置及简单使用方法
  • 应收账款与营业收入比例分析
  • 收支平衡表excel怎么做
  • 公司股东和自然人的关系
  • 预缴增值税需要提供什么资料
  • 出口退回的增值税计入哪个会计科目
  • 支付结算办法是部门规章吗
  • 生产过程中的不良品怎么处理
  • 公司付款给个人现金
  • 常见开具发票错误详解是?
  • 外汇申报材料
  • 异地成立子公司能用母公司的名称吗?
  • 留存收益和未分配利润一样吗
  • 明细分类账三栏式
  • 关闭terminal monitor
  • ubuntu mysql 5.6版本的删除/安装/编码配置文件配置
  • fedora怎么样
  • windows怎么彻底删除
  • windows中双击硬盘驱动器图标操作的作用
  • win10预览版21390
  • win7系统怎么禁止软件自启动
  • centos wget
  • win10系统怎样卸载程序
  • 单线程语言有哪些
  • linux中shell脚本编写
  • css网站布局实录 pdf
  • opengl用法
  • 提高网页的效率的方法有
  • jquery获取滚动条位置
  • easyui表格
  • unity射击游戏完整案例
  • jquery插件开发方法
  • 安卓环境搭建id怎么设置
  • Android之Async-http
  • unity3d移动代码
  • js实现拖拽功能
  • bootstrap基础教程
  • js中面向对象编程
  • 电子税务局怎么删除办税员
  • 提问:请问海淀区各税务所管辖范围都是哪里?
  • 蚌埠站到蚌埠南站多远
  • 吉林税务发票自动查询系统网
  • 税务2021年认真落实各项工作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设