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. C#用Call代替CallVirt之后的测试用例

    一. C# 原始代码和直接结果 测试 C# 代码: class Program { static void Main(string[] args) { A c1 = new C(); c1.Foo() ...

  2. Java生鲜电商平台-API请求性能调优与性能监控

    Java生鲜电商平台-API请求性能调优与性能监控 背景 在做性能分析时,API的执行时间是一个显著的指标,这里使用SpringBoot AOP的方式,通过对接口添加简单注解的方式来打印API的执行时 ...

  3. Oracle 12C Win 10 安装 应用 总结

    安装参考 https://www.cnblogs.com/onezg/p/8768597.html 我当时安装的是Oracle 12c Release 1(Version 12.1.0.1.0,64位 ...

  4. Python3在使用requests提示警告InsecureRequestWarning

    解决方法:

  5. iOS中session和cookie的使用

    获取session的方法: #pragma mark - 获取session -(NSString *)getsession{ NSHTTPCookieStorage *cookieStorage = ...

  6. 阿里Java完整学习资料

    最近有很多读者问我如何系统的进行 Java 学习,于是我就翻阅一下之前收集的资料,分享给大家. 这份资料是我在市面上众多的 Java 学习资料中挑选出来的,相信肯定是精品.而且这份资料是出自阿里,具有 ...

  7. Day_04 面向对象

    概述 对于面向对象编程的支持,Go语言设计得非常简洁而优雅.因为,Go语言并没有沿袭传统 面向对象编程中的诸多概念,比如继承(不支持继承,尽管匿名字段的内存布局和行为类似继承,但它并不是继承). 虚函 ...

  8. C++ 基础语法 快速复习笔记---面对对象编程(2)

    1.C++面对对象编程: a.定义: 类定义是以关键字 class 开头,后跟类的名称.类的主体是包含在一对花括号中.类定义后必须跟着一个分号或一个声明列表. 关键字 public 确定了类成员的访问 ...

  9. 第50 课C++对象模型分析——成员变量(上)

    C++对象模型,其实就是C++中的对象在内存中是如何排布的.C++中的对象包含了成员变量和成员函数,其实就是研究C++中的类对象它的成员变量和成员函数在内存中是如何排布的. 回归本质class 是一种 ...

  10. Html学习之十八(表格与表单学习--统计表制作)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...