Docker构建tomcat无法用startup.sh启动,无法输出catalina.out

2023-11-12

最近部署测试环境,想尝试一下docker,毕竟技术人不能落伍。

So,我先学习了一下docker的简单使用,很多东西都是实践出真知,没必要看书找教程,大概看一下能干就可以了。

菜鸟教程地址Docker 教程 | 菜鸟教程    初学者可以了解一下,下面进入正题

当我迷迷糊糊开始我的docker之旅的时候,前面部署什么nginx,部署jar,部署各种数据库都比较顺利,最近突然遇到点问题。

我部署完tomcat发现tmd里面居然看不到catalina.out 谁让我们工程比较老化呢,看不到catalina.out的输出日志我就等于是瞎了,服务起不来找不到原因有木有。。。。

雷哥赶紧找百度解决问题,看了诸多文章,写的太复杂,各种脚本,各种文件修改,说实话这玩意不适合小白,我需要简单有效的办法。

还有就是大多数博文都长得一样,我了个天,天下文章大家抄啊。。。能不能有点创新,做个人吧

耗一天以后总结了各路英雄豪杰的结论

1、docker不能够使用startup.sh启动tomcat   原因:catalina.sh 启动脚本里多了个“&”,没错就是这么简单因为多了个这没办法启动。

2、不能使用startup.sh启动就没办法输出catalina.out   这个是因为啥我不知道,你要是知道请给我留言,让我也学习一下,谢谢

那么解决办法也不是没有

网上的大神们一直认为应该用dockerfile构建tomcat镜像然后再运行容器,当然这是大神的方法,在研究了半天之后我恍然大明白,这个办法可行啊。

来吧展示

这是我看到的最简单的办法,但是我不喜欢,还是太麻烦,实属因为我太懒了

这个又要下载jdk又要下tomcat其实是根据系统基础镜像然后再把本地的jdk和tomcat一起打包成你想要的镜像,然后配置环境变量,再启动容器。这个里面的tomcat是需要把catalina.sh

修改后的。切记,要把那个“&”删掉

就是这段代码

 >> "$CATALINA_OUT" 2>&1 "&"

一共有两处,删掉以后就可以用startup.sh启动了

因为要配置的东西太多,我不喜欢不喜欢,我需要有更简单的办法

后来,我灵机一动,我擦不是有配置好的镜像么,老子直接在他基础之上构建就好了。

首先我们拉一个tomcat8.5下来这个镜像都是配置好的,所以不用自己配置环境变量那些了,省去很多麻烦

docker pull tomcat:8.5

然后创建一个文件夹

在文件夹里直接创建Dockerfile文件

#FROM后面是tomcat:8.5的镜像id,就是要再这个镜像基础之上构建
FROM 8204722e9772
#公开端口
EXPOSE 8080
#设置启动命令
CMD ["/usr/local/tomcat/bin/startup.sh"]

就这三句话我们构建一个新的 镜像就好了

敲黑板

注意:启动命令里面的路径是tomcat:8.5镜像里面的路径,如果其他版本不知道路径或者路径有变化,建议先用8.5镜像启动一个容器,然后进入容器看一眼启动命令的路径改一下就可以了,8.5应该就是这个不需要改

直接在文件夹输入构建命令

docker build -t mytest/tomcat:v1 .

然后我们的镜像就构建好了,mytest/tomcat这个事镜像的名字,自己随便改,v1是tag也是随便改,方便自己识别,来吧启动容器

当我自信满满启动好的时候,嘎~~~~启动不了。。。。

想了一下我刚才说的那个catalina.sh的文件没有改,那么怎么办呢?各位同学请注意,这里就是另外一个知识点,容器文件copy

虽然没启动但是文件是有的,我们直接搞出来先

docker cp 3cb36df72cae:/usr/local/tomcat/bin/catalina.sh ./

copy  容器里面的文件到当前文件夹,那个  3cb36df72cae  是容器的id用容器的名字也可以。然后就是进入文件

找到>> "$CATALINA_OUT" 2>&1 "&"   改为  >> "$CATALINA_OUT" 2>&1   保存就可以了。

最后,在把文件copy回去

docker cp ./catalina.sh 3cb36df72cae:/usr/local/tomcat/bin/catalina.sh 

接下来就run就对了,完成!!!容器绝对可以启动成功。有什么问题欢迎留言讨论。
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker构建tomcat无法用startup.sh启动,无法输出catalina.out 的相关文章

随机推荐

  • k8s资源类型详解

    k8s资源类型 一 k8s资源类型简介 二 deployment资源类型 三 service资源类型 四 k8s资源的回滚操作 五 用label控制pod的位置 六 namespace简介 七 pod资源类型 八 健康检测的相关应用 九 R
  • 网络爬虫是什么

    作为一家大数据公司的运营小编 经常会有人问我 诶 你说的爬虫是什么呀 爬虫的用途是什么呀 你们公司是卖爬虫的吗 有蜥蜴吗 等一系列问题 面对这些问题 小编是绝望的 那么爬虫到底是什么呢 一 爬虫是什么 以下是百度百科上对于网络爬虫的定义 网
  • Qt内存泄露(总结)

    一 简介 Qt内存管理机制 Qt 在内部能够维护对象的层次结构 对于可视元素 这种层次结构就是子组件与父组件的关系 对于非可视元素 则是一个对象与另一个对象的从属关系 在 Qt 中 在 Qt 中 删除父对象会将其子对象一起删除 C 中del
  • RColorBrewer

    1 RColorBrewer工具包 该包是R中常用的颜色选取工具包 它具有简单易用的特点 对于不具备太多色彩理论的读者来说也十分友好 虽然该包主要是为地图上色而设计 但也可以用于其他用途 library RColorBrewer 下面就逐一
  • 宝来车联网显示服务器开小差,思域请靠边站,比亚迪秦Pro在此!还有导航路况信息显示、车联网 快来瞧瞧!...

    由于各地政策的不同 燃油车和新能源车在各地的发展情况也有所不同 接下来要讲得两辆汽油车还不错 分别是秦Pro和宝来 让我们来一起了解一下吧 车型 比亚迪秦Pro 2018款 1 5TI 自动智联锋尚型 国V 指导价 9 98万元 2020
  • 统计二叉树结点个数(C语言)

    函数接口定义 int NodeCount BiTree T T是二叉树树根指针 函数NodeCount返回二叉树中结点个数 若树为空 返回0 裁判测试程序样例 include
  • matlab双因素模型,matlab双因素方差分析

    在MATLAB中求解 源程序 a 76 67 81 56 51 82 69 96 59 70 68 59 上页 下页 返回 表4 9 双因素试验的方差分析表 方差来源 平方和 自由度 因素 方差分析用于两个或者两个以上因素样本均值的检验问
  • 【行为识别】TSN/TRN/TSM/SlowFast/Non-local

    前言 记录视频理解领域的几篇文章吧 由于每篇值得记录的东西不多 所以合在一起 关于开源框架 有港中文多媒体实验室的MMAction 有设备的就尽量多跑跑模型吧 视频相对于静态图像多了时间维度 静态图像的分类 检测 分割做得相对完善了 视频方
  • 2015中国数据库技术大会简介

    作为国内数据库与大数据领域最大规模的技术盛宴 2015第六届中国数据库技术大会 DTCC 即将于2015年4月16日 18日在北京新云南皇冠假日酒店震撼登场 大会以 大数据技术交流和价值发现 为主题 云集了国内外顶尖专家 共同探讨MySQL
  • Vue项目打包部署到Tomcat

    废话不多说 直接进入正题 一 通常在开发环境下请求后台接口会用到反向代理 而在生产环境中反向代理是不生效的 那么为了避免部署在服务器上时需要一个一个更改接口地址这种麻烦费时的操作 更改配置文件去自动切换接口地址 开发环境 在config文件
  • 关于使用QTcpSocket的一些总结

    QTcpSocket类的方法connectToHost会泄露内存 即使把调用这个方法的QTcpSocket实例delete掉 内存也不会释放 反复connectToHost会导致段错误 十分危险 必须控制connectToHost的使用次数
  • 10.文件操作

    CSAPP笔记 1 shell程序设计 2 内存管理 3 链接库 4 文件操作 5 多进程 6 多线程 7 网络编程 8 makefile 9 调试技巧与调试工具 文章目录 CSAPP笔记 前言 一 基础知识 1 文件复制 2 扫描目录 3
  • SpringBoot 2 -SpringBoot入门

    SpringBoot 2 SpringBoot入门 1 简介 2 第一个SpringBoot程序 3 升级 4 响应封装类配置 1 简介 springboot是什么 Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能
  • 安装mysql5.7笔记

    1 查看系统中是否自带安装mysql yum list installed grep mysql 2 删除系统自带的mysql及其依赖 防止冲突 yum y remove mysql libs x86 64 3 安装wget命令 yum i
  • 计算机网络的体系结构--学习计算机网络的重中之重

    一 计算机网络体系结构的设计 1 为什么需要计算机网络体系结构 连接在网络上的两台计算机需要互相传送文件 a 必须有一条传送数据的通路 b 发起通信的计算机要将数据通信的通路激活 激活就是发出一些信令 保证要传送的计算机数据能在这条通路上正
  • 图的m着色问题(回溯法-满m叉树)

    span style font family none background color rgb 255 255 255 1 问题描述 span 给定无向连通图G和m种不同的颜色 用这些颜色为图G的所有顶点着色 每个顶点着一种颜色 每条边的
  • 时域采样,频域为什么周期延拓了

    频域周期延拓只是表面现象 其实质是不同的信号采样后的像可能相同 不可区分 如果硬要做实验 还是要有一定的编程基础 起码要整一个声音出来 让你听一听 可是你要重复这一实验可能又太难了 所以我还是讲一讲简单的数学原理 并用简单的三角函数及程序验
  • Linux系统同时安装MySQL5.7和MySQL8.0

    本文是在一台Centos7虚拟机上面同时安装mysql5 7和mysql8 0的步骤 记录一下 方便后续回顾 这篇文章之后会接着学习搭建两台虚拟机一主一从的架构 其中配置的文件名称 目录 端口号 IP地址要根据自己电脑的实际情况进行更改 m
  • Ubuntu 22.04上安装Docker的完整过程

    更新系统软件包 sudo apt update 安装所需的依赖包 以允许APT使用HTTPS sudo apt install apt transport https ca certificates curl software proper
  • Docker构建tomcat无法用startup.sh启动,无法输出catalina.out

    最近部署测试环境 想尝试一下docker 毕竟技术人不能落伍 So 我先学习了一下docker的简单使用 很多东西都是实践出真知 没必要看书找教程 大概看一下能干就可以了 菜鸟教程地址Docker 教程 菜鸟教程 初学者可以了解一下 下面进