在docker中运行Tomcat所遇到的问题及一些解决方案

一.在docker中运行相应的镜像,为何无法输入命令
在这里插入图片描述
因为目前已经进入了tomcat应用,和之前在linux中运行rabbitmq一样的问题。如下我试过ctrlZ和ctrlC,只有CtrlC起作用,于是去了解C和Z之前的区别

Ctrl+C比较暴力,就是发送Terminal到当前的程序,比如你正在运行一个查找功能,文件正在查找中,Ctrl+C就会强制结束当前的这个进程。
Ctrl+Z是把当前的程序挂起,暂停执行这个程序,

在这里插入图片描述
当使用ctrlC后去访问localhost:8080端口不起作用,因为此时tomcat进程已经被销毁,相当于tomcat应用被关闭了,但如果ctrl+p+q,容器不停止退出
二.当我解决完上述问题之后,另一个问题出现了就是404,但tomcat是已经运行了的只是首页并未能访问的到在这里插入图片描述
1.使用命令: docker exec -it 运行的tomcat容器ID /bin/bash 进入到tomcat的目录(exec 该命令进入运行中的容器并以命令行交互,若需进入容器,则docker attcah 容器id)
在这里插入图片描述

2.当我进入webapps文件夹,发现里面是空的(tomcat默认的欢迎页面实际上放在的路径应该是:webapps/ROOT/index.jsp或者index.html)
在这里插入图片描述

解决方案:由于新版的tomcat有个webapps.dist的文件,原本应该在webapps文件中的文件都在webapps.dist文件中,所以将webapp,rmdir命令删了,dist文件改成webapps即可


由于最新版本的镜像,本次的修改只能在当前镜像创建的实例中生效,但当关闭docker容器或者关闭tomcat重新启动一个实例,那么依然如此。
解决方案:远程镜像库中的镜像我们可以看成是基础版本,按我们所需可以在上面添加修改操作,相当于对基础版本进行添加自己的装备库。然后添加完成后需要自己生成相应新的镜像,就好比反射一般。
通过命令行docker commit -a="" -m="" 容器实例id:tag(version版本号要指定,不然还是latest)
在这里插入图片描述
利用命令docker stop 容器id或者一次性删除所有容器docker rm -f $(docker ps -a -q)
在这里插入图片描述
之后生成的tomcat实例都是可以直接访问首页内容
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

破晓以胜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值