Docker快速安装Tomcat

embedded/2024/12/24 3:02:31/

安装docker的教程,参考文章:

Linux安装Docker-CSDN博客

在linux中安装Tomcat,步骤如下:

1.从远程仓库中拉取Tomcat镜像

docker pull tomcat

如果拉取很慢,通过更换下载镜像的地址便可解决,不过镜像地址可能随时失效,需要多试几个。

解决方法:

vi /etc/docker/daemon.json

进入编辑窗口,将内容替换为:

{
"registry-mirrors": [
  "https://registry.docker-cn.com",
  "https://docker.1panel.live",
  "https://hub.rat.dev",
  "http://hub-mirror.c.163.com",
  "https://docker.mirrors.ustc.edu.cn",
  "https://kfwkfulq.mirror.aliyuncs.com"
 ]
}

然后保存退出。

刷新配置并重启docker

systemctl daemon-reload
systemctl start docker

再次执行pull命令,就可以了。

以上配置的地址随时可能失效,如果失效了,需要从网上找其他的地址尝试。

2.查看已经拥有的镜像

docker images

3.运行Tomcat

docker run -p 8000:8080 tomcat

启动Tomcat,并将Tomcat默认的8080端口,映射到docker外部的8000端口。

利用docker安装Tomcat很简单,不需要配置jdk、环境变量等内容。

因为我的linux系统是部署在虚拟机上的,所以访问虚拟机的ip(192.168.1.10),加上8000端口,就可以访问到Tomcat了,因为Tomcat没有首页的地址,所以显示404,Tomcat实际已经启动了。

 通过修改Tomcat安装路径中ROOT文件夹的位置即可解决首页不显示问题。

使用docker ps查询Tomcatdocker中的名称

根据名称进入安装目录,注意,romantic_pascal是Tomcat容器名称。

docker exec -it romantic_pascal /bin/bash

执行后会自动进入到安装目录下,ls查看目录内容

进入webapps目录下,发现是空的,正常情况tomcat默认的欢迎页面实际上放在的路径应该是:webapps/ROOT/index.jsp或者index.html。

仔细观察会发现,安装路径下还有个文件夹,webapps.dist。进入后发现,需要的东西都在这里面。

把ROOT目录 移动到 webapps目录中,就可以了,具体操作就是在webapps.dist目录下执行命令:mv ROOT /usr/local/tomcat/webapps/ ,将ROOT文件夹移动位置。

刷新页面,就正常显示Tomcat首页了。

注意,如果是使用的xshell连接的linux,在启动容器后,ctrl+c,会导致容器停止运行。解决方法是在启动命令中添加 -d 参数,将容器后台运行。

docker run -d -p 8000:8080 tomcat

4.查询正在运行的docker容器

docker ps

5.停止某个容器

docker stop 容器编号

容器编号指docker ps命令结果中的第一个字段值(CONTAINER ID) 。

6.查询所有容器状态,包括停止的容器

docker ps -a

7.重启docker中的某个容器

docker restart 容器编号

8.删除某个容器

docker rm 容器编号

9.删除镜像 

docker rmi 镜像ID

镜像ID可以通过docker images命令查询。 


http://www.ppmy.cn/embedded/148233.html

相关文章

【集合】Java 8 - Stream API 17种常用操作与案例详解

文章目录 Java8 Stream API 17种常用操作与案例详解1. collect():将流中的元素收集到集合中2. filter():根据条件过滤流中的元素3. map():元素映射为另一个值4. forEach():对流中的元素执行操作5. flatMap():将流中的元…

websocket的心跳检测和断线重连

心跳检测和断线重连可以通过WebSocket的事件和属性来实现。以下是一个简单的JavaScript示例,使用WebSocket API实现心跳检测和断线重连的功能: let ws;function connectWebSocket() {ws new WebSocket(ws://your-websocket-server-url);ws.onopen fun…

智能座舱进阶-应用框架层-Handler分析

首先明确, handler是为了解决单进程内的线程之间的通信问题的。我也需要理解Android系统中进程和线程的概念, APP启动后,会有三四个线程启动起来,其中,有一条mainUITread的线程,专门用来处理UI事件&#xf…

vscode 版本升级导致yarn不能使用

原由 1.由于之前开发版本是1.66 ,现在升级到1.96 2. 采用mvm 管理多个node版本 3. 旧的node版本卸载16.xxxx 启动旧项目 报以下异常 yarn : 无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径&…

QT实战经验总结 连载中

QT实战经验总结 在看书系统学习后,就开始实战了,会遇到很多问题1.信号和槽的思考2.在python 或 C 代码中,对 QML 代码中控件的调用3.关于在一个窗口上不断打开新窗口 在看书系统学习后,就开始实战了,会遇到很多问题 p…

ECharts中通过饼图(type为pie)绘制出仪表盘进度条

在ECharts中,可以通过多个饼图系列(series)来实现仪表盘形式的进度条,如下图,需要通过以下几个饼图组合来完成。 一个饼图用于进度条背景底色(未完成部分);一个饼图用于进度条颜色&…

调用钉钉接口发送消息

调用钉钉接口发送消息 通过创建钉钉开放平台创建H5小程序,通过该小程序可以实现向企业内的钉钉用户发送消息(消息是以工作通知的形式发送) 1、目前仅支持发送文本消息,相同内容的文本只能成功发送一次,但是接口返回发…

上传文件(vue3)

使用el-upload 先上传到文件服务器&#xff0c;生成url 然后点击确定按钮&#xff1a; 保存数据 <template><el-dialog top"48px" width"500" title"新增协议" :modelValue"visible" close"handleClose()">…