Tomcat 容器化

思考

  • 问题1 , Tomcat 容器化,Tomcat 如何配置 APR 连接器

    Tomcat 的基础镜像已经是开启了 APR

  • 问题2, Tomcat 是每次都需要重新构建。

    一、如果公司已经是一整套的 容器化流程已经跑起来的话,那么建议通过 Dockerfile 进行重新构建。

    二、如果只是运行于测试环境,并且是小范围使用的话,我们可以通过 挂载来实现。我们下面会详细讲。

  • 问题3,Tomcat 的日志如何处理?

    首先我们需要搞清楚 Tomcat 会产生哪些日志,首先在 /usr/local/tomcat/logs/ 下是有 5个日志的

    -rw-r----- 1 root root 12083 8月   5 14:48 catalina.2019-08-05.log
    -rw-r----- 1 root root 0 8月 5 11:23 host-manager.2019-08-05.log
    -rw-r----- 1 root root 0 8月 5 11:23 localhost.2019-08-05.log
    -rw-r----- 1 root root 552 8月 5 14:55 localhost_access_log.2019-08-05.txt
    -rw-r----- 1 root root 0 8月 5 11:23 manager.2019-08-05.log

    这个我们可以通过挂载目录,让日志写在宿主机对应的目录。而且这些日志 ,Tomcat 是会进行自动切割的。

    还有一个日志是控制台日志,Docker 默认的日志驱动是 json-log, 最终也是写到 /var/lib/docker/containers/container_id/container_id-json.log。我们也可以通过配置 参数来实现切割和压缩。

实操

我们这边是用于 测试环境,并且我们项目没有进行容器化,使用容器是为了 让多个 app 放在不同的 Tomcat 里面。这样便于管理。

所以我们采用的是挂载宿主机目录(更新就进行替换对应的 war 包)来实现的。但是我们这里还是建议在有条件的情况下通过 Dockerfile 进行重新构建。

基于 Tomcat 镜像 8.5.43-jdk8-openjdk

挂载目录

宿主机目录                   挂载至容器的目录
/opt/hbg/logs/ /usr/local/tomcat/logs/
/opt/hbg/webapps/ /usr/local/tomcat/webapps/

日志切割

日志的最大文件为50M, 超过就进行切割。  --log-opt max-size=50m
日志文件的最大数量 --log-opt max-file=100
日志文件切割后开启压缩 --log-opt compress=true

设置时区为 上海

-e TZ="Asia/Shanghai"

端口映射

宿主机   容器主机  配置
81 8080 -p 81:8080

运行命令

docker run  -d  -e TZ="Asia/Shanghai"  --mount  type=bind,src=/opt/hbg/logs/,dst=/usr/local/tomcat/logs/   --mount  type=bind,src=/opt/hbg/webapps/,dst=/usr/local/tomcat/webapps/  --log-opt max-size=50m --log-opt max-file=100 --log-opt compress=true   -p 81:8080  tomcat:8.5.43-jdk8-openjdk

后续更新,我们只需要更新 /opt/hbg/webapps/ 下的 war 包就行了。

Tomcat 简单容器化的更多相关文章

  1. Atitit s2018.6 s6 doc list on com pc.docx Atitit s2018.6 s6 doc list on com pc.docx  Aitit algo fix 算法系列补充.docx Atiitt 兼容性提示的艺术 attilax总结.docx Atitit 应用程序容器化总结 v2 s66.docx Atitit file cms api

    Atitit s2018.6 s6  doc list on com pc.docx Atitit s2018.6 s6  doc list on com pc.docx  Aitit algo fi ...

  2. kubernetes 降本增效标准指南| 容器化计算资源利用率现象剖析

    作者:詹雪娇,腾讯云容器产品经理,目前主要负责腾讯云集群运维中心的产品工作. 张鹏,腾讯云容器产品工程师,拥有多年云原生项目开发落地经验.目前主要负责腾讯云TKE集群和运维中心开发工作. 引言 降本增 ...

  3. 唯品会RPC服务框架与容器化演进--转

    原文地址:http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=405781868&idx=1&sn=cbb10d37e25 ...

  4. 一看就懂-Docker容器化

    一.Docker简介 1.1 什么是docker docker的英文意思是 码头工人,意思就是搬运东西的意思,其实这和docker的特点是一样的,docker提供的就是一种容器化搬运东西(我们的软件. ...

  5. 谷歌助力,快速实现 Java 应用容器化

    原文地址:梁桂钊的博客 博客地址:http://blog.720ui.com 欢迎关注公众号:「服务端思维」.一群同频者,一起成长,一起精进,打破认知的局限性. Google 在 2018 年下旬开源 ...

  6. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(一)(转载)

    本文结构 ASP.NET Core应用程序的构建 ASP.NET Core应用程序容器化所需注意的问题 应用程序的配置信息 端口侦听 ASP.NET Core的容器版本 docker镜像构建上下文(B ...

  7. Docker之容器化学习之路v20.10.3

    Docker概述 **本人博客网站 **IT小神 www.itxiaoshen.com Docker文档官网 Docker是一个用于开发.发布和运行应用程序的开放平台.Docker使您能够将应用程序与 ...

  8. 新一代Java程序员必学的Docker容器化技术基础篇

    Docker概述 **本人博客网站 **IT小神 www.itxiaoshen.com Docker文档官网 Docker是一个用于开发.发布和运行应用程序的开放平台.Docker使您能够将应用程序与 ...

  9. Spring Boot 项目转容器化 K8S 部署实用经验分享

    转载自:https://cloud.tencent.com/developer/article/1477003 我们知道 Kubernetes 是 Google 开源的容器集群管理系统,它构建在目前流 ...

随机推荐

  1. 2018-8-10-win10-uwp-退出程序

    原文:2018-8-10-win10-uwp-退出程序 title author date CreateTime categories win10 uwp 退出程序 lindexi 2018-08-1 ...

  2. C#面对对象之封装、继承、多态的简单理解

    一.封装 隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别. 简单来多,就是讲我们所需要的代码打包封装进入一个类里面,便于我们调用,操作.这就是封装. 这样就隔离了具体 ...

  3. wpf listview images

    <ListView x:Name="lv"> <ListView.ItemsPanel> <ItemsPanelTemplate> <St ...

  4. \" 转义字符, \a系统警报,逐字字符串(verbatim string)

    string str="The key factors are \"focus\" and \"perseverance\""; strin ...

  5. C#使用Emgu CV来进行图片人脸检测

    项目需求:某市级组织考试,在考试前需审核考生采集表中的考生照片是否合格,由于要审核的考生信息采集表有很多,原先进行的是手动人工审核,比较费时费力,审核的要求也很简单,并不判断考生是否是图片本人(身份验 ...

  6. asp.net单一登录

    asp.net 使用 Application 限制单一登录 原理:用户登录后系统会分配一个与用户唯一对应的SessionID,将当前用户ID与其SessionID对应保存在Application中,一 ...

  7. Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析

    Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析 生鲜电商搜索引擎的特点 众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才 ...

  8. git 多账户链接不同gitlab仓库

    1.若之前对 git 设置过全局的 user.name 和 user.email.类似(用git config --global --list 进行查看你是否设置) 一定要清除之前设置的用户和邮箱 $ ...

  9. SpringBoot(十一):SpringBoot整合Redis

    详解springboot整合redis:https://blog.csdn.net/qq_36781505/article/details/86612988 一.环境准备 Redis-x64-3.2. ...

  10. python web框架Django——ORM

    ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...