一、服务器环境准备与初始化
部署前需完成CentOS系统的基础环境配置。通过MobaXterm或Xshell连接ECS实例后,执行sudo yum install docker
安装Docker服务并设置开机自启。创建专用目录/usr/local/src/java
存放JDK安装包,通过tar -zxvf
解压后,在/etc/profile
配置JAVA_HOME环境变量。建议使用Oracle JDK 8或OpenJDK 11作为运行时环境。
组件 | 推荐版本 |
---|---|
JDK | 1.8/11 |
Tomcat | 9.x |
Docker | 20.10+ |
二、传统部署与容器化方案对比
传统部署方式需手动上传WAR/JAR包到Tomcat的webapps目录,通过systemctl restart tomcat
重启服务。容器化方案推荐使用Dockerfile构建镜像:
- 编写包含基础镜像、环境变量、暴露端口的Dockerfile
- 执行
docker build -t app-image .
构建镜像 - 运行
docker run -d -p 8080:8080 app-image
启动容器
三、安全组与端口配置规范
在阿里云控制台设置安全组时,需遵循最小权限原则:
- 仅开放业务必需的端口(如HTTP 80/HTTPS 443)
- SSH 22端口限定管理员IP访问
- 数据库端口禁止公网暴露
使用sudo netstat -tulpn | grep
检测端口占用情况,必要时通过kill -9 PID
终止冲突进程。
四、自动化部署最佳实践
推荐结合GitLab CI/CD或Jenkins实现持续交付:
- 配置Webhook触发自动化构建
- 使用Maven/Gradle插件生成Docker镜像
- 通过Kubernetes进行滚动更新
日志监控方面,建议部署ELK(Elasticsearch, Logstash, Kibana)栈集中管理容器日志,设置异常告警阈值。
通过合理选择部署方案并建立标准化流程,可显著提升部署效率。容器化部署在环境隔离、版本回滚方面优势明显,而传统部署适合小型快速迭代项目。建议生产环境采用Kubernetes集群管理容器,配合阿里云容器镜像服务实现高效运维。