使用docker-compose搭建tomcat并且部署crm项目(mysql主从)
这个docker-compose.yml文件中有mysql的主服务器,还有从服务器,还有tomcat服务,在tomcat服务中我们添加了启动顺序必须mysql的主从启动之后,我们的tomcat才会去执行,因为如果tomcat服务器先启动了,mysql还没有连接上数据库,那么tomcat就会报错的,tomcat服务里面的crm项目需要mysql服务连接数据库获取数据,但是这样设置会有问题, 如果my
一.部署tomcat
1.下载相关镜像tomcat8.5.40
docker pull tomcat:8.5.40
2.在/data目录下创建tomcat/webapps目录
mkdir -p /data/tomcat/webapps
注意:这里是准备将宿主机的/data/tomcat/webapps映射到容器的
/usr/local/tomcat/webapps目录,那么在创建tomcat容器后,
本应该存在与webapps目录下的原生目录(例如:manager等)都
将不存在,因为映射的宿主机目录/data/tomcat/webapps为空,
所以将不能采用tomcat原有部署方式,只能将war通过rz命令上传
至宿主机的/data/tomcat/webapps目录
3.创建一个容器测试一下镜像
docker run \
-p 8080:8080 \
--name tomcat-0 \
--privileged=true \
--restart=always \
-v /data/tomcat/webapps:/usr/local/tomcat/webapps \
-e TZ=Asia/Shanghai \
-itd tomcat:8.5.40
4.上传hello.war至/data/tomcat/webapps目录
文章使用的素材会放到末尾
rz hello.war
上传之后,使用以下指令重启容器
docker restart tomcat-0
使用docker logs -f tomcat-0 监听一下容器日志 // -f 表示一直监听日志

可以在里面发现刚刚上传的war项目,并且也启动了tomcat服务
ctrl + c 退出日志监听
现在我们去访问刚刚部署的项目

成功的访问到了刚刚部署的项目!!!
后面的步骤,我们要在tomcat部署crm项目,也就是数据库,在部署之前我们还用到mysql主从,不然部署crm项目的时候会报错~
可以执行 rm -rf * 删除之前所有部署的项目,
接下来我们就会是用docker-compoose一次性去创建mysql主从,还有tomcat的服务
执行 docker rm -f $(docker ps -aq) 删除之前的测试用的容器
二.安装docker-compose
1上传文件
安装包刚下载过来是docker-compose-Linux-x86_64
需要将docker-compose-Linux-x86_64重命名为docker-compose
rz将docker-compose文件上传到虚拟机的/usr/local/bin/目录下
cd /usr/local/bin
添加可执行权限
chmod +x /usr/local/bin/docker-compose
2.创建并编辑yml文件
先创建一个文件夹,给来放yml文件
mkdir docker
cd docker
在docker里面执行下面的命令
touch docker-compose.yml
vi docker-compose.yml 进入文件把以下内容复制进去:(编辑yml文件的可以在idea中编辑)
# 版本号
version: '3'
# 定义服务
services:
# 服务名
mysql-master:
# 容器名称
container_name: mysql-master
# 镜像
image: mysql/mysql-server:5.7
# 重启
restart: always
# 提供伪终端
tty: true
# root具备管理员权限
privileged: true
# 环境变量
environment:
MYSQL_ROOT_PASSWORD: 123456
# 数据卷(目录映射)
volumes:
- /data/mysql-master/conf/my.cnf:/etc/my.cnf
- /data/mysql-master/data:/var/lib/mysql
# 网络
networks:
mynetwork:
ipv4_address: 172.19.0.3
# 服务名
mysql-slave:
# 容器名称
container_name: mysql-slave
# 镜像
image: mysql/mysql-server:5.7
# 重启
restart: always
# 提供伪终端
tty: true
# root具备管理员权限
privileged: true
# 环境变量
environment:
MYSQL_ROOT_PASSWORD: 123456
# 数据卷(目录映射)
volumes:
- /data/mysql-slave/conf/my.cnf:/etc/my.cnf
- /data/mysql-slave/data:/var/lib/mysql
# 网络
networks:
mynetwork:
ipv4_address: 172.19.0.4
# 服务名
tomcat-0:
# 容器名称
container_name: tomcat-0
# 镜像
image: tomcat:8.5.40
# 重启
restart: always
# 端口映射
ports:
- 8080:8080
# 启动顺序
depends_on:
- mysql-master
# 执行命令
command: "./wait-for-it.sh -t 0 mysql-master:3306 -- catalina.sh run"
# 提供伪终端
tty: true
# root具备管理员权限
privileged: true
# 环境变量
environment:
TZ: Asia/Shanghai
# 数据卷(目录映射)
volumes:
- /data/tomcat/webapps:/usr/local/tomcat/webapps
# 网络
networks:
mynetwork:
ipv4_address: 172.19.0.5
# 定义所需要的网络
networks:
mynetwork:
driver: bridge
ipam:
config:
- subnet: 172.19.0.0/16
在编辑完docker-compose.yml文件之后,我们把要部署的crm项目上传到/data/tomcat/webapps下
cd /data/tomcat/webapps
rz 上传
上传之后我们运行docker-compose.yml
docker-compose up -d
加了 -d 就是后台运行
访问运行crm项目
http://xx.xx.xx.xx:8080/crm/sys/loginAction.action?username=zs&password=123

欧克登录成功,说明crm部署成功了
好啦 文章内容到这里就结束了 你学到了吗
觉得有用的记得关注点赞加收藏哦 我的Docker专栏还有其他关于Dokcer的技术点哦~
我敲BUG的Docker专栏:http://t.csdn.cn/ypXDz



更多推荐

所有评论(0)