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. MySQL UNION 查询

    UNION 用来合并多个 SELECT 结果. 考察如下两个表: # t1 +----+---------+ | id | pattern | +----+---------+ | 1 | Divot ...

  2. 浅谈Vue下的components模板

    浅谈Vue下的components模板在我们越来越深入Vue时,我们会发现我们对HTML代码的工程量会越来越少,今天我们来谈谈Vue下的 components模板的 初步使用方法与 应用 我们先来简单 ...

  3. arcgis api for javascript 学习(二) 发布并调用地图切片

    文章将从发布切片地图到调用切片地图整个过程都展示出来. (一).切片地图的发布 1.还是前面的arcgis展示的地图 2.与发布动态地图前面的步骤是一样的 打开分享后,如图 3.一切就绪后,到达缓存的 ...

  4. Mybatis书写

    Mybatis设置主键和自增 方法1: <insert id="insert" parameterType="Person" useGeneratedKe ...

  5. Python—实现ssh客户端(连接远程服务器)

    paramiko是一个基于SSH用于连接远程服务器并执行相关操作(SSHClient和SFTPClinet,即一个是远程连接,一个是上传下载服务),使用该模块可以对远程服务器进行命令或文件操作,值得一 ...

  6. [Linux] deepin系统添加PHP仓库源出错Error: could not find a distribution template for Deepin/stable

    aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Deepi ...

  7. 爬虫---Beautiful Soup 初始

    我们在工作中,都会听说过爬虫,那么什么是爬虫呢? 什么是网络爬虫 爬虫基本原理 所谓网络爬虫就是一个自动化数据采集工具,你只要告诉它要采集哪些数据,丢给它一个 URL,就能自动地抓取数据了.其背后的基 ...

  8. 浅谈JS函数防抖及应用场景

    [前言] 在工作中,我们可能碰到这样的问题: 用户在搜索的时候,在不停敲字,如果每敲一个字我们就要调一次接口,接口调用太频繁,给卡住了. 用户在阅读文章的时候,我们需要监听用户滚动到了哪个标题,但是每 ...

  9. Shiro内置过滤器

    Shiro内置过滤器 DefaultFilter 枚举类定义了shiro所有的默认过滤器. package org.apache.shiro.web.filter.mgt; public enum D ...

  10. R-时空可视化

    Robert J. Hijmans37 开发了 raster 包用于网格空间数据的读.写.操作.分析和建模,同时维护了空间数据分析的网站 https://www.rspatial.org Edzer ...