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

  • 支付宝娱乐宝如何购买(支付宝娱乐宝如何注销)

    支付宝娱乐宝如何购买(支付宝娱乐宝如何注销)

  • 苹果手机卡槽不读卡如何修理(苹果手机卡槽不用针怎么打开)

    苹果手机卡槽不读卡如何修理(苹果手机卡槽不用针怎么打开)

  • wifi插口对哪个位置(wifi插头的正确插法)

    wifi插口对哪个位置(wifi插头的正确插法)

  • ipadpro一二三代对比(ipadpro一二三代 画画)

    ipadpro一二三代对比(ipadpro一二三代 画画)

  • 淘宝怎么看自己的买家秀(淘宝怎么看自己等级几颗星)

    淘宝怎么看自己的买家秀(淘宝怎么看自己等级几颗星)

  • ps源文件是什么(ps源文件是什么意思)

    ps源文件是什么(ps源文件是什么意思)

  • 什么是A站(什么是A站B站C站D站P站N站)

    什么是A站(什么是A站B站C站D站P站N站)

  • 抖音拉黑与移除的区别(抖音拉黑移除粉丝对方还能关注我吗)

    抖音拉黑与移除的区别(抖音拉黑移除粉丝对方还能关注我吗)

  • 台式电脑usb接口在哪(台式电脑usb接口电压和电流是多少)

    台式电脑usb接口在哪(台式电脑usb接口电压和电流是多少)

  • ip地址是什么(ip地址是什么意思怎样确定位置)

    ip地址是什么(ip地址是什么意思怎样确定位置)

  • 手机微信为什么老掉线(手机微信为什么发不了语音)

    手机微信为什么老掉线(手机微信为什么发不了语音)

  • 单反如何拍闪电(微单如何拍闪电)

    单反如何拍闪电(微单如何拍闪电)

  • 滕达路由器开关在哪里(腾达路由器按钮设置方法)

    滕达路由器开关在哪里(腾达路由器按钮设置方法)

  • 华为浏览器被禁止安装应用怎么办(华为浏览器被禁止安装应用在哪里可以取消)

    华为浏览器被禁止安装应用怎么办(华为浏览器被禁止安装应用在哪里可以取消)

  • 快手收藏的视频在哪里(快手收藏的视频怎么删除)

    快手收藏的视频在哪里(快手收藏的视频怎么删除)

  • p30充电速度(p30充电速度测试)

    p30充电速度(p30充电速度测试)

  • ipad pro9.7和10.5的区别(ipadpro9.7与10.5)

    ipad pro9.7和10.5的区别(ipadpro9.7与10.5)

  • 超级看怎么用不了(超级看下架原因)

    超级看怎么用不了(超级看下架原因)

  • 苹果xr有红外吗(苹果xr有没有红外线)

    苹果xr有红外吗(苹果xr有没有红外线)

  • 电脑图标怎么在电脑底部显示详细介绍(电脑图标怎么在下面显示)

    电脑图标怎么在电脑底部显示详细介绍(电脑图标怎么在下面显示)

  • 报错:Parsing error: No Babel config file detected...的解决方案(报错专业了可不可以改)

    报错:Parsing error: No Babel config file detected...的解决方案(报错专业了可不可以改)

  • 一只带着幼崽的长胡子皇狨猴 (© Chris White/iStock/Getty Images Plus)(带着崽崽宠老公免费阅读)

    一只带着幼崽的长胡子皇狨猴 (© Chris White/iStock/Getty Images Plus)(带着崽崽宠老公免费阅读)

  • 一个前端大佬的十年回顾 | 漫画前端的前世今生(前端大佬都有谁)

    一个前端大佬的十年回顾 | 漫画前端的前世今生(前端大佬都有谁)

  • VUE3.0+Antdv+Asp.net WebApi开发学生信息管理系统(二)

    VUE3.0+Antdv+Asp.net WebApi开发学生信息管理系统(二)

  • 增值税和所得税地方留存比例
  • 一般户用途可以是往来款吗
  • 固定资产清理期末余额在借方是什么意思
  • 限售股在锁定期内卖出
  • 同一法人的两家企业可以以同一投标人身份投标吗
  • 个人独资企业有股权吗
  • 发放股票股利增资
  • 一般纳税人建筑公司都交什么税
  • 装修保证金怎么记账
  • 在建工程试运行收入和成本怎么处理
  • 商业承兑汇票风险大吗
  • 个人账户转公司账户需要交税吗
  • 企业生产设备产品有哪些
  • 企业所得税期末贷方余额怎么办
  • 加油票不打公司会怎么样
  • 新25项工资薪金是什么
  • 酒店式公寓配套服务包括哪些
  • 以旧翻新视频
  • 环保费用计入哪个科目
  • 邮局劳务费发票几个点
  • 比赛奖金支出计入什么科目
  • 专业做电热水器哪些品牌
  • 香港公司的法人叫什么
  • 递延收益摊销会计分录
  • 钱已确定收不回怎么办
  • 权利,许可证照印花税
  • 企业转让库存股,应按实际收到的金额
  • 怎么远程重装win10
  • 凤尾蕨的养殖方法
  • php获取图片
  • Win11安卓子系统怎么安装apk
  • php实用的案例
  • 二手商铺的税费太高了吧
  • 发票开具的法定义务是什么
  • 出现质量问题赔偿标准
  • 发行的企业债券是什么会计科目
  • 一只棕色
  • 细说php
  • 带你看看房间英语怎么写
  • php搜索框查询数据库
  • 怎么调试vue项目
  • js怎么制作
  • 分公司增值税可以放总公司一起缴纳吗
  • 如何禁用笔记本键盘触摸板
  • python中sample函数怎么用
  • 结转各项成本的会计分录
  • 企业所有者权益是什么意思
  • 跨月更正申报会扣信用分么
  • 一般纳税人的税负率是多少
  • 单位财务报销制度和流程
  • 增值税发票相关罪名
  • 变动成本法是指什么
  • 应收账款的注意要点
  • 两处以上取得工资如何申报个税
  • 新会计准则适用企业
  • 非公益捐赠如何入账
  • 学校固定资产账记法
  • 仲裁是什么意思举个例子
  • linux 清理
  • 安装win8.1系统步骤
  • winxp设置在哪
  • xp电脑桌面图片显示缩略图
  • linux怎么管理进程
  • mac电脑finder在哪里
  • centos下安装windows
  • unity绘制曲线
  • cocos code ide 1.0.0 RC0 使用教程
  • javascript几种数据类型
  • vue如何进行组件化开发
  • jquery删除所有class
  • unity资源库
  • 理解js绑定事件是什么
  • jquery的实现原理
  • python语句查询
  • Javascript字符串对象函数
  • 关注龙江医保
  • 网上增值税发票验旧
  • 增值税专用发票增额需要什么资料
  • 肉类零售
  • 开票内容 大类
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设