tomcat ng mysql 集成_tomcat+mysql+nginx构建web容器

本篇讲述用tomcat、nginx和maridb镜像来构建最基础的web服务,编写docker-compose文件用以启动服务。

镜像下载

web部署需要tomcat、nginx和maridb,下载这三个软件的最新镜像如下:

为了使用方便,我将所有的镜像都push到了本地仓库,并把nginx重新打了一个new的tag标签(因为本地已经有一个低版本的nginx,并做了镜像改动,区分一下)。

web部署所需文件准备

web部署前需要准备服务所需的基本数据库配置、前端静态页面文件和后端war包。为了容器内外时间一致,同时准备时间信息文件,用以挂载到容器内部。

我们将需要的文件统一放到web目录中,web的整个目录结构如下:

image文件夹用于存放web交互过程上传下载的图片文件,mysql_db用于持久化maridb数据文件存放(初始化时存放最近本的数据库配置及表结构),war目录用来存放tomcat提供后端服务所需的war包,web_page文件用来存放nginx代理静态页面所需的前端工程文件。

编写docker-compose文件

编写的用以发布web服务的docker-compose.yml文件如下:

services:

mysql:

image: 127.0.0.1:25000/mariadb:latest

restart: always

ports:

- 3306:3306

environment:

MYSQL_ROOT_PASSWORD: password

volumes:

- /mnt/web/mysql_db:/var/lib/mysql

- /etc/localtime:/etc/localtime:ro

networks:

- sdknet

tomcat:

image: 127.0.0.1:25000/tomcat:latest

restart: always

volumes:

- /mnt/web/war:/usr/local/tomcat/webapps

- /mnt/web/logs:/usr/local/tomcat/logs

- /etc/localtime:/etc/localtime:ro

- /mnt/web/war/timezone:/etc/timezone

- /mnt/web/image:/image

networks:

- sdknet

ports:

- 8089:8080

nginx:

image: 127.0.0.1:25000/nginx:new

restart: always

volumes:

- /etc/localtime:/etc/localtime:ro

- /mnt/web/web_page:/etc/nginx/html

- /mnt/web/war/default.conf:/etc/nginx/nginx.conf

- /mnt/web/image:/image

networks:

- sdknet

ports:

- 8000:80

networks:

sdknet:

external: true

因为三个容器之间需要通过网络相互访问,所以在compose文件中添加名为sdknet的network打通容器网络。

启动web容器服务

docker network create --driver=overlay --attachable sdknet

docker-compose up

请求页面验证

访问web页面打开系统首页如下,说明我们的服务已经成功启动!

本篇内容在本人个人公众号上也已发布,欢迎关注本人微信公众号“勤菜鸟”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值