mac(arm架构) 使用docker安装Tomcat 8 + JRE 8

1. 拉取 Tomcat 8 + JRE 8 镜像(M4 专用)

选择官方维护的 tomcat:8-jre8-temurin(基于 Eclipse Temurin JRE 8,稳定且适配 arm64):

bash 复制代码
# 拉取 Tomcat 8 + JRE 8 镜像(arm64 版本) 
docker pull tomcat:8-jre8-temurin 
# 验证镜像架构(确保是 arm64) 
docker inspect tomcat:8-jre8-temurin | grep -i arch 
# 输出 "Architecture": "arm64" 即适配 M4

2. 启动 Tomcat 8 容器(端口映射 + 目录挂载)

bash 复制代码
# 1. 本地创建 webapps 目录(用于部署 war 包) 
mkdir -p ~/tomcat8/webapps 
# 2. 启动容器(后台运行+端口映射+目录挂载)
docker run -d \ --name tomcat8-jre8 \ -p 8080:8080 \ -v ~/tomcat8/webapps:/usr/local/tomcat/webapps \ tomcat:8-jre8-temurin
  • --name tomcat8-jre8:容器命名,方便后续操作

  • -p 8081:8080:主机8080端口映射到容器8081,可以修改容器端口为未占用端口

  • -v ~/tomcat8/webapps:/usr/local/tomcat/webapps:本地目录挂载(放 war 包自动部署)

3. 验证运行状态

bash 复制代码
# 查看容器是否启动 
docker ps | grep tomcat8-jre8 
# 查看 Tomcat 日志(确认无报错) docker logs -f tomcat8-jre8

日志中出现 Server startup in xxx ms 即启动成功

4. 访问 Tomcat 首页

plaintext 复制代码
http://localhost:8080

5.无法访问排查

第一步:先确认容器和端口是否真的在运行
1. 检查容器状态(必须是 Up 状态)
bash 复制代码
docker ps | grep tomcat8-jre8
  • ✅ 正常输出示例:xxx tomcat:8-jre8-temurin "catalina.sh run" Up 5 minutes 0.0.0.0:8888->8080/tcp tomcat8-jre8

  • ❌ 无输出 / 状态是 Exited:容器没启动,执行 docker start tomcat8-jre8 重启。

5.2 检查 Mac 端口是否监听(8888 必须被占用)

bash 复制代码
lsof -i :8888
  • ✅ 输出包含 docker-proxy:端口映射成功;

  • ❌ 无输出:容器端口映射失败,需重新创建容器(看第二步)。

第二步:解决核心问题(Tomcat 8 官方镜像无默认首页)

Tomcat 8 官方镜像的 webapps 目录默认是空的(只有 webapps.dist 有默认文件),这是访问 404 / 无法访问的最常见原因!

方案:手动复制默认首页到挂载目录
bash 复制代码
# 1. 进入容器内部 
docker exec -it tomcat8-jre8 bash 
# 2. 复制默认首页文件到 webapps(Tomcat 读取的目录) 
cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/ 
# 3. 退出容器
exit 
# 4. 重启容器(确保生效) 
docker restart tomcat8-jre8
第三步:重新验证访问

浏览器打开:

plaintxt 复制代码
http://localhost:8888
相关推荐
就叫_这个吧16 小时前
tomcat在idea控制台乱码问题解决
java·tomcat·intellij-idea
IT界的老黄牛16 小时前
MongoDB 主从切换排查实战:从 docker ps 到 jq,一套 SOP 定位死因
数据库·mongodb·docker
极客先躯16 小时前
高级java每日一道面试题-2026年02月04日-实战篇[Docker]-如何在容器之间共享数据?
java·运维·网络·docker·容器·自动化·高级面试题
程序猿小野16 小时前
在阿里云服务器上安装Docker部署后台项目
阿里云·docker·云计算
“码”力全开17 小时前
打破芯片与协议壁垒:基于 Docker+边缘计算 的企业级 AI 视频管理平台架构解析(附 GB28181/RTSP 统一接入与源码交付方案)
人工智能·docker·边缘计算
ai产品老杨17 小时前
【架构深评】基于 Docker 与 边缘计算,如何打通 GB28181/RTSP 与 X86/ARM 异构算力的企业级 AI 视频流网关?(附源码交付)
人工智能·docker·架构
AI服务老曹17 小时前
解耦异构算力与多协议混战:基于 Docker 容器化的国标 GB28181/RTSP 边缘计算 AI 视频管理平台架构设计与源码交付实践
人工智能·docker·边缘计算
“码”力全开17 小时前
统一安防视界:基于 Docker 与边缘计算的 GB28181/RTSP 多协议解耦架构解析(实现源码交付与 95% 成本压缩)
docker·架构·边缘计算
das2m18 小时前
Arch Linux (WSL2) Docker 环境踩坑记
linux·docker·eureka