使用Docker部署Tomcat
使用Docker部署Tomcat
1. 获取镜像
docker pull tomcat:8.5.38
docker images
2. 第一次启动tomcat
该步骤作用:是为了拷贝容器中Tomcat中的conf下配置文件和webapps下的管理页面,用于后面自定义Tomcat服务器配置或者部署应用。
第一次启动:
docker run -d --name tomcat8 -p 8081:8080 tomcat:8.5.38
在宿主机创建文件夹:
/home/tomcat8
从容器中拷贝配置文件和应用到宿主机中:
docker cp tomcat8:/usr/local/tomcat/conf/ /home/tomcat8/
docker cp tomcat8:/usr/local/tomcat/webapps/ /home/tomcat8/
3.带参数启动
docker run --name tomcat8 -p 1808:8080 \
-v /home/tomcat8/conf:/usr/local/tomcat/conf \
-v /home/tomcat8/webapps:/usr/local/tomcat/webapps \
-v /home/tomcat8/logs:/usr/local/tomcat/logs \
-v /etc/localtime:/etc/localtime:ro \
-v /serverdata/conf/tsmsg/:/serverdata/conf/tsmsg \
-e TZ=Asia/Shanghai \
-d tomcat:8.5.38
-v /serverdata/conf/tsmsg/:/serverdata/conf/tsmsg
这个为应用本身的配置文件映射,根据实际需求来。
-v /etc/localtime:/etc/localtime:ro
这个命令的作用是将宿主机上的时区设置文件(/etc/localtime)挂载到Docker容器中相同的位置,使容器能够使用与宿主机相同的时区设置。
具体来说,这个命令的各部分意义如下:
-v:这是Docker命令用来指定挂载卷的标志(Volume)。/etc/localtime:这是宿主机上时区文件的路径。该文件包含了当前时区的信息。:/etc/localtime:这是容器内部的挂载点,即容器内与宿主机/etc/localtime文件对应的路径。:ro:这表示以只读方式挂载(Read-Only)。容器可以读取该文件,但无法修改它,这样可以防止容器的操作影响宿主机的时区设置。
这样做的好处是保证容器内的应用程序可以正确处理与时区相关的操作,例如记录日志的时间戳、执行定时任务等。这对于需要时区一致性的应用程序来说非常重要。例如,如果你在上海运行宿主机,而你的容器也应当使用东京的时区,通过这种方式挂载/etc/localtime,你的容器将会自动采用上海的时区,而无需在容器内单独配置时区。
4.查看tomcat日志
1通过看宿主机 /home/tomcat8/logs 下的日志
通过docker logs -f tomcat8 查看日志
5.时区问题
如果你的应用用的是Oracle数据,可能会遇到这样的错:
Caused by: java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-01882: timezone region not found
这个错误信息是由Oracle数据库返回的,表示有两个错误:
ORA-00604: 这个错误表明在递归SQL级别(即Oracle内部操作)发生了错误。递归SQL是Oracle在处理用户SQL语句时内部自动执行的SQL语句,常见于触发器、登录逻辑等。ORA-01882: 这个错误表明找不到指定的时区地区。当数据库或JDBC驱动试图访问特定的时区信息,而该信息在数据库的时区文件中不存在或未被识别时,就会出现这个错误。
这两个错误一起出现可能意味着在执行初始化会话时,比如在用户登录时设置会话的时间区域,Oracle发现它不能识别或找到该时区。
这时候你会搜索到要同步时区,需先设置好宿主机的时区:
timedatectl set-timezone Asia/Shanghai
再在容器启动时添加
-v /etc/localtime:/etc/localtime:ro
或许,会发现宿主机的时间不对,可用
date -s "20240131 11:31:00"
更改一下宿主机的时间
使用Docker部署Tomcat的更多相关文章
- 【转】Docker部署Tomcat及Web应用
Docker部署Tomcat及Web应用 - Scofield_No1的博客 - CSDN博客https://blog.csdn.net/qq_32351227/article/details/786 ...
- Docker容器和本机之间的文件传输 使用Docker部署Tomcat项目
Docker容器和本机之间的文件传输. http://blog.csdn.net/leafage_m/article/details/72082011 使用Docker部署Tomcat项目 http: ...
- Docker部署Tomcat实例
1.使用Docker部署Tomcat服务 http://www.open-open.com/lib/view/open1455717671698.html 2.搭建docker私有仓库 http:// ...
- 在华为云ECS上手工通过Docker部署tomcat
本文介绍了如何在华为云上ECS上手工通过Docker部署tomcat,并提供了Docker常用操作 一.环境准备 ECS:操作系统版本: CentOS Linux release 7.6.181 ...
- Docker部署tomcat及应用
前提Docker已安装完成. 由于测试网无法直接连入互联网,所以在本机虚拟机内下载tomcat镜像并传到测试网主机中. 虚拟机内执行 查找tomcat镜像: # docker search tomca ...
- docker 部署tomcat
使用Docker搭建Tomcat运行环境 1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS ...
- Docker部署Tomcat,Nginx,Redis应用
一.tomcat部署 1.拉取tomcat镜像 docker pull tomcat:7-jre7 2创建tomcat容器 创建容器用于部署单点登录系统(CAS) -p表示地址映射 docker r ...
- 2. Docker部署tomcat, nginx, redis,及docker私有仓库
1. 部署tomcat 1.1 下载tomcat docker pull tomcat:7-jre8 1.2 部署容器 docker run -di --name=tomcat -p 8 ...
- Docker部署tomcat+nginx+mysql,创建一个tomcat集群
Docker的部署可以选择虚拟机或者云服务器,我自己选择的是本机安装centos7虚拟机: 1.虚拟机安装登录成功后开始部署docker: 首先了解docker是一个开源应用容器引擎,基于Go语言遵循 ...
- docker 部署 tomcat
1.搜索tomcat信息 docker search tomcat 2.下拉tomcat 镜像 docker pull tomcat 3.运行tomcat docker run -d --name=t ...
随机推荐
- 如何在CSDN上如何快速转载博客
复制粘贴应该是最显而易见的方法,但是不仅会有丢失内容,而且格式也会丢失.要想达到更好的效果,可以从html源码入手. 1.在chrome浏览器中打开要转载的文章,右键选择检查(or使用F12) 2.在 ...
- socket TCP DPT 网络编程
复习: ARP协议: 广播和单播 通过ip地址获得mac地址 机器A发起一个arp请求(只包含A的ip地址) 交换机接收到请求,广播这条消息 所有的机器都会接受到这条请求,只有需要寻找的机器B的ip地 ...
- 小白学标准库之反射 reflect
1. 反射简介 反射是 元编程 概念下的一种形式,它在运行时操作不同类型的对象,检查对象的类型,大小等信息,对于没有源代码的包反射尤其有用. 设想一个场景,读取一个包中变量 a 的类型,并打印该类型的 ...
- 理解 Kubernetes volume 和 共享存储
1. Kubernetes volume 文章 介绍了 Docker volume.与 docker volume 类似的,在 kubernetes 中存在 Pod 级别的 volume,Pod 的 ...
- spring--CGLIB动态代理的实现原理
CGLIB(Code Generation Library)是一个强大的.高性能.高质量的代码生成库,它可以在运行时扩展 Java 类和实现 Java 接口.CGLIB 动态代理是基于继承的方式来实现 ...
- Laravel : Eloquent 新增
public function ormCreate() { # 1. 使用模型新增 ->save() /* ...
- Go-命令行参数解析
1. 解析命令行参数 程序在执行时,获取在命令行启动程序是使用的参数 命令行( Command line interface -- CLI):基于文本来查看.处理.操作计算机的界面,又被称为 终端.控 ...
- linux-网络状态-netstat
- mongo环境搭建
安装 mongoDB mongo下载 添加 MONGOROOT/bin 到环境变量 PATH MONGOROOT是mongo安装目录 启动 mongo 服务启动程序 MONGOROOT/bin/mon ...
- [转帖](1.2)sql server for linux 开启代理服务(SQL AGENT),使用T-SQL新建作业
https://www.cnblogs.com/gered/p/12518090.html 回到顶部 [1]启用SQL Server代理 sudo /opt/mssql/bin/mssql-conf ...