TongWebDocker镜像制作手册
2025-08-24 01:58:56作者:农烁颖Land
1. 适用场景
TongWebDocker镜像制作手册专为需要在容器化环境中部署和管理东方通TongWeb应用服务器的技术人员设计。该手册适用于以下场景:
企业级应用部署:适用于金融、电信、政府等关键业务系统的容器化部署需求,支持高可用、高并发的企业级应用场景。
特定环境适配:满足特定替代需求,支持在国产操作系统(如麒麟、统信UOS)和特定芯片架构上进行容器化部署。
云原生转型:帮助企业从传统部署方式向云原生架构转型,实现应用的快速部署、弹性伸缩和统一管理。
开发测试环境:为开发团队提供标准化的TongWeb运行环境,确保开发、测试和生产环境的一致性。
多版本管理:支持同一环境中运行多个不同版本的TongWeb实例,便于版本升级和回滚测试。
2. 适配系统与环境配置要求
操作系统要求
- 基础镜像:支持CentOS、Ubuntu、Kylin等主流Linux发行版
- 架构支持:x86_64、ARM64等主流CPU架构
- 内核版本:Linux内核3.10及以上版本
Docker环境要求
- Docker版本:Docker CE/EE 18.06及以上版本
- 存储驱动:推荐使用overlay2存储驱动
- 资源配额:建议分配至少2GB内存和2个CPU核心
Java环境要求
- JDK版本:OpenJDK 1.8或Oracle JDK 1.8
- JVM内存:建议配置2GB-8GB堆内存
- 字符编码:支持UTF-8和GBK编码
网络配置要求
- 端口映射:需要开放8088(应用端口)、9060(控制台端口)、7200(JMX端口)等
- 网络模式:支持bridge、host等Docker网络模式
- 安全策略:确保容器间网络通信畅通
存储要求
- 磁盘空间:基础镜像约500MB-1GB,应用数据单独挂载
- 日志存储:建议使用外部卷挂载日志目录
- 数据持久化:应用数据、配置文件需要持久化存储
3. 资源使用教程
镜像制作步骤
方法一:使用Dockerfile构建镜像
- 准备基础环境:
# 创建构建目录
mkdir tongweb-docker
cd tongweb-docker
# 准备所需文件
cp TongWeb7.0.tar.gz ./
cp jdk-8u291-linux-x64.tar.gz ./
cp license.dat ./
- 编写Dockerfile:
FROM centos:7
# 设置环境变量
ENV JAVA_HOME=/opt/jdk1.8.0_291
ENV PATH=$JAVA_HOME/bin:$PATH
ENV TONGWEB_HOME=/opt/TongWeb
ENV TZ=Asia/Shanghai
# 安装基础工具
RUN yum install -y wget tar gzip && yum clean all
# 安装JDK
ADD jdk-8u291-linux-x64.tar.gz /opt/
RUN ln -s /opt/jdk1.8.0_291 /opt/jdk
# 安装TongWeb
ADD TongWeb7.0.tar.gz /opt/
ADD license.dat /opt/TongWeb/
# 暴露端口
EXPOSE 8088 9060 7200 8006 5100
# 设置启动命令
ENTRYPOINT ["/opt/TongWeb/bin/startserver.sh"]
- 构建镜像:
docker build -t tongweb:7.0 .
方法二:使用commit命令制作镜像
- 启动基础容器:
docker run -itd --name tongweb-builder centos:7 /bin/bash
- 安装必要组件:
docker exec -it tongweb-builder yum install -y java-1.8.0-openjdk
- 拷贝TongWeb文件:
docker cp TongWeb7.0.tar.gz tongweb-builder:/opt/
docker cp license.dat tongweb-builder:/opt/TongWeb/
- 提交为新镜像:
docker commit tongweb-builder tongweb:7.0-custom
容器部署与管理
启动TongWeb容器:
# 单实例部署
docker run -d \
--name tongweb-instance \
-p 8080:8088 \
-p 9060:9060 \
-v /data/tongweb/logs:/opt/TongWeb/logs \
-v /data/tongweb/conf:/opt/TongWeb/conf \
tongweb:7.0
集群部署配置:
# 多实例负载均衡
docker run -d --name tongweb-node1 -p 8081:8088 tongweb:7.0
docker run -d --name tongweb-node2 -p 8082:8088 tongweb:7.0
docker run -d --name tongweb-node3 -p 8083:8088 tongweb:7.0
容器管理命令:
# 查看运行状态
docker ps | grep tongweb
# 查看日志
docker logs -f tongweb-instance
# 重启容器
docker restart tongweb-instance
# 进入容器
docker exec -it tongweb-instance /bin/bash
应用部署
WAR包部署:
# 将应用包拷贝到自动部署目录
docker cp application.war tongweb-instance:/opt/TongWeb/autodeploy/
# 或者使用挂载目录
docker run -v /apps:/opt/TongWeb/autodeploy tongweb:7.0
配置文件管理:
# 挂载外部配置文件
docker run -v /config/tongweb.xml:/opt/TongWeb/conf/tongweb.xml tongweb:7.0
# 修改JVM参数
docker exec -it tongweb-instance vi /opt/TongWeb/bin/external.vmoptions
4. 常见问题及解决办法
镜像构建问题
问题1:基础镜像下载失败
- 现象:docker pull命令超时或失败
- 解决:配置国内镜像源,修改/etc/docker/daemon.json:
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
问题2:许可证文件无效
- 现象:启动时报license验证失败
- 解决:确保license.dat文件与TongWeb版本匹配,且放置在正确目录
容器启动问题
问题3:端口冲突
- 现象:容器启动失败,提示端口已被占用
- 解决:修改宿主机端口映射或停止占用端口的服务
问题4:内存不足
- 现象:容器频繁重启,JVM内存溢出
- 解决:调整JVM参数,增加容器内存限制:
docker run -m 4g -e JAVA_OPTS="-Xms2g -Xmx3g" tongweb:7.0
应用部署问题
问题5:应用无法访问
- 现象:应用部署后无法通过浏览器访问
- 解决:检查安全设置、网络策略和应用日志
问题6:数据库连接失败
- 现象:应用连接数据库超时或失败
- 解决:确认数据库网络可达性,检查连接池配置
性能优化问题
问题7:响应缓慢
- 现象:应用响应时间过长
- 解决:调整线程池配置,优化JVM参数,增加容器资源
问题8:内存泄漏
- 现象:内存使用率持续上升
- 解决:生成heapdump分析内存使用,调整GC策略
监控与日志
问题9:日志收集困难
- 现象:容器日志分散,难以集中管理
- 解决:使用日志驱动或挂载外部日志目录
问题10:监控指标缺失
- 现象:无法获取容器运行状态指标
- 解决:启用JMX监控,配置Prometheus监控
应急处理
问题11:容器异常退出
- 现象:容器无故停止运行
- 解决:查看容器退出码,分析系统日志,检查资源限制
问题12:数据丢失风险
- 现象:容器重建后数据丢失
- 解决:确保重要数据使用volume持久化存储
通过本手册的详细指导,您可以快速掌握TongWebDocker镜像的制作和部署技巧,实现企业级应用的容器化转型,提升部署效率和系统稳定性。