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

  • 抖音怎么投诉商家(抖音怎么投诉商家不按约定时间发货)

    抖音怎么投诉商家(抖音怎么投诉商家不按约定时间发货)

  • 苹果喇叭震动清理灰尘(苹果喇叭震动清理灰尘app)

    苹果喇叭震动清理灰尘(苹果喇叭震动清理灰尘app)

  • 蓝牙键盘用着用着就无法使用了(蓝牙键盘反应迟钝怎么解决)

    蓝牙键盘用着用着就无法使用了(蓝牙键盘反应迟钝怎么解决)

  • g5420相当于i几(g5420相当于i几代i5)

    g5420相当于i几(g5420相当于i几代i5)

  • 手机充一晚上电了,还没有充满,是什么原因(手机充一晚上电会爆炸吗)

    手机充一晚上电了,还没有充满,是什么原因(手机充一晚上电会爆炸吗)

  • word怎么画直线(Word怎么画直线转角)

    word怎么画直线(Word怎么画直线转角)

  • 华为手机怎么设置蓝牙名字(华为手机怎么设置高清通话功能)

    华为手机怎么设置蓝牙名字(华为手机怎么设置高清通话功能)

  • 被加入微信黑名单是什么样(被加入微信黑名单怎么破解)

    被加入微信黑名单是什么样(被加入微信黑名单怎么破解)

  • svmsung是什么牌子电脑(svmsung是什么牌子电视)

    svmsung是什么牌子电脑(svmsung是什么牌子电视)

  • 抖音小店审核未通过怎么办(抖音小店审核未通过影响抖音吗)

    抖音小店审核未通过怎么办(抖音小店审核未通过影响抖音吗)

  • 蓄电池内阻多大就不能用了(蓄电池内阻大如何修复)

    蓄电池内阻多大就不能用了(蓄电池内阻大如何修复)

  • 抖音看不到直播怎么回事(抖音看不到直播人数怎么回事)

    抖音看不到直播怎么回事(抖音看不到直播人数怎么回事)

  • yoyo是哪个手机的语音助手(yoyo是哪个手机的智能语音)

    yoyo是哪个手机的语音助手(yoyo是哪个手机的智能语音)

  • 苹果8p有几个内存(苹果8p有几种内存容量)

    苹果8p有几个内存(苹果8p有几种内存容量)

  • 荣耀20pro鲁大师跑分(荣耀v20鲁大师能跑多少分)

    荣耀20pro鲁大师跑分(荣耀v20鲁大师能跑多少分)

  • access2010是系统软件吗(access2010属于什么管理系统)

    access2010是系统软件吗(access2010属于什么管理系统)

  • 闲鱼买的东西可以退货吗(闲鱼买的东西可以退款吗)

    闲鱼买的东西可以退货吗(闲鱼买的东西可以退款吗)

  • word封面下划线怎么加长(word封面下划线怎么设置对齐)

    word封面下划线怎么加长(word封面下划线怎么设置对齐)

  • 华为talkback怎么开启(华为talkback怎么永久卸载)

    华为talkback怎么开启(华为talkback怎么永久卸载)

  • 荣耀手环5i有久坐提醒吗(荣耀手环 5i)

    荣耀手环5i有久坐提醒吗(荣耀手环 5i)

  • oppoace支持光学防抖吗(oppoace几倍光学变焦)

    oppoace支持光学防抖吗(oppoace几倍光学变焦)

  • vivox27长度多少厘米(vivox27手机长度多少厘米)

    vivox27长度多少厘米(vivox27手机长度多少厘米)

  • 新版本快手怎样竞猜(快手怎么这样啊)

    新版本快手怎样竞猜(快手怎么这样啊)

  • 抖音定位的非堂是哪里(抖音定位的非堂是哪个城市)

    抖音定位的非堂是哪里(抖音定位的非堂是哪个城市)

  • 如何添加橱窗产品(如何添加橱窗产品 答案)

    如何添加橱窗产品(如何添加橱窗产品 答案)

  • 不用电脑咋下爱思助手(不用电脑直接下载爱思助手)

    不用电脑咋下爱思助手(不用电脑直接下载爱思助手)

  • 帝国cms网站标题哪里修改(帝国cms标题生成图片)

    帝国cms网站标题哪里修改(帝国cms标题生成图片)

  • 员工扣了个税但没交给税务局
  • 汇算清缴期间费用填表说明
  • 交城市维护建设税填什么凭证
  • 技术使用费所得税怎么算
  • 边际贡献总额分析法的收入为零
  • 计提劳务成本月末需要结转吗
  • 详解劳务报酬个人所得税应该怎么计算?
  • 税局定额的标准
  • 失业保险退保怎么返
  • 建筑公司收到工程款需要交哪些税
  • windows 11怎么样
  • 库存商品如何结转生产成本
  • 网线超五类好还是六类好
  • 在web页面中如果出现html语句
  • 公司清算债权债务如何清理
  • 跨国公司外汇资金集中
  • 离职补偿金的会计实务处理
  • nvm安装及全局配置node
  • laravel create
  • framework core
  • 开发票为什么要对公账户?
  • 支付属于借方吗?
  • 企业向个人租房子需要缴纳什么税
  • 装修费还没摊销完就搬家了
  • php array_merge_recursive 数组合并
  • 稽查增值税跨年了销项税额如何转出
  • 汇兑损益是资产类科目
  • 银行存款转银行存款 什么凭证
  • 库存不多
  • 商业会计与财务会计的相同
  • 股东投钱一般怎么投
  • 企业资产评估增值
  • 直接计入所有者权益的利得和损失
  • 信用卡的还款方式怎么查
  • 临时用工费用计入什么会计科目
  • 增值税专用发票有几联?
  • 失业保险金退回短信
  • 如何计算政府补贴应摊销
  • 公司跟员工的往来协议
  • 代开租金发票的税金怎样入账?
  • 公司没有收入怎么办
  • 预付款已经开了发票未到货要怎么做账
  • 工程竣工后发生工程的保修费用入哪个科目?
  • 增值税税控系统专用设备费及技术维护费抵扣
  • 会计入职新公司
  • 财务章和公章的样式区别图片
  • 企业发生存货盘盈时计入营业外收入科目
  • win8无法修复你的电脑
  • Win10系统中怎么将文件夹进行压缩
  • centos如何删除用户组里面的用户
  • win10系统回收站损坏了怎么恢复
  • f11一键恢复系统详解
  • .exe是什么软件
  • windows任务计划程序
  • 提示无法启动打印作业
  • win7 64位旗舰版下载后怎样禁用搜索记录?win7禁用搜索记录的设置方法
  • win7系统无法创建分区也无法定位
  • windows8如何降到windows7
  • win10笔记本键盘失灵按什么键恢复
  • quick-cocos2d-x如何在mac下编译安卓版本
  • linux openfoam
  • perl如何使用
  • 低端显卡n卡设置
  • java的匿名内部类
  • 浅谈自己对教育的理解
  • 详解node HTTP请求客户端 - Request
  • 性能优化是什么
  • shell命令for
  • js网页背景色
  • python井字游戏
  • js对象属性值
  • javascript程序设计教程
  • python写邮箱
  • 广东税务增值税发票查验平台
  • 国家税务12366电子税务局重庆
  • 河北税务怎么查询交了没有
  • 江苏社保退工办理流程
  • 经信委和科技局的区别
  • 云南港口城市
  • 广东电子发票开票软件?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设