Docker实战:Tomcat+MySQL容器化部署,常见工厂后处理器作用。
·
容器化部署 Tomcat + MySQL 实战指南
环境准备与工具安装
确保已安装 Docker 和 Docker Compose。Docker 用于构建和运行容器,Docker Compose 用于定义多容器应用。
检查 Docker 版本:
docker --version
安装 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
编写 Dockerfile 构建 Tomcat 镜像
创建目录 tomcat-mysql 并新建 Dockerfile:
FROM tomcat:10.1-jdk17
COPY ./webapp.war /usr/local/tomcat/webapps/
将 WAR 文件放入目录,构建镜像:
docker build -t my-tomcat-app .
配置 MySQL 容器
新建 docker-compose.yml 文件:
version: '3.8'
services:
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: appdb
volumes:
- mysql_data:/var/lib/mysql
tomcat:
image: my-tomcat-app
ports:
- "8080:8080"
depends_on:
- mysql
volumes:
mysql_data:
启动容器并验证
运行以下命令启动服务:
docker-compose up -d
验证 Tomcat 是否运行:
curl http://localhost:8080
检查 MySQL 连接:
docker exec -it tomcat-mysql_mysql_1 mysql -uroot -prootpass
数据持久化与网络配置
MySQL 数据通过 Docker 卷持久化,确保容器重启后数据不丢失。
自定义网络可提升容器间通信效率:
networks:
app_net:
driver: bridge
在服务配置中添加 networks 字段引用该网络。
进阶优化与安全
限制容器资源使用以防止过载:
tomcat:
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
配置 MySQL 安全选项:
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MYSQL_USER: appuser
MYSQL_PASSWORD: ${DB_PASSWORD}
使用环境变量文件(.env)管理敏感信息。
日志与监控
查看容器日志:
docker-compose logs -f
集成 Prometheus 和 Grafana 监控容器性能:
monitoring:
image: prom/prometheus
ports:
- "9090:9090"
常见问题排查
容器启动失败时检查日志:
docker-compose logs mysql
端口冲突时修改 docker-compose.yml 中的端口映射。
数据库连接问题需验证 JDBC URL 和凭证是否匹配容器配置。
CI/CD 集成示例
GitLab CI 示例片段:
deploy:
stage: deploy
script:
- docker-compose down
- docker-compose up -d --build
结合 Jenkins 或 GitHub Actions 实现自动化构建与部署。
通过以上步骤,可实现 Tomcat 与 MySQL 的容器化部署及生产级优化。
更多推荐
所有评论(0)