首页
/ TongWebDocker镜像制作手册

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构建镜像

  1. 准备基础环境:
# 创建构建目录
mkdir tongweb-docker
cd tongweb-docker

# 准备所需文件
cp TongWeb7.0.tar.gz ./
cp jdk-8u291-linux-x64.tar.gz ./
cp license.dat ./
  1. 编写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"]
  1. 构建镜像:
docker build -t tongweb:7.0 .

方法二:使用commit命令制作镜像

  1. 启动基础容器:
docker run -itd --name tongweb-builder centos:7 /bin/bash
  1. 安装必要组件:
docker exec -it tongweb-builder yum install -y java-1.8.0-openjdk
  1. 拷贝TongWeb文件:
docker cp TongWeb7.0.tar.gz tongweb-builder:/opt/
docker cp license.dat tongweb-builder:/opt/TongWeb/
  1. 提交为新镜像:
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镜像的制作和部署技巧,实现企业级应用的容器化转型,提升部署效率和系统稳定性。