目录
3.上传hello.war至/data/tomcat/webapps目录
一、部署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-0容器后,
本应该存在与webapps目录下的原生目录(例如:manager等)都
将不存在,因为映射的宿主机目录/data/tomcat/webapps为空,
所以将不能采用tomcat原有部署方式,只能将war通过rz命令上传
至宿主机的/data/tomcat/webapps目录
2.1测试镜像
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
注1:TZ=Asia/Shanghai用于设置时区为:亚洲/上海,可进入容器用如下命令进行查看
echo `date "+%Y-%m-%d %H:%M:%S"`
注2:以上容器的创建采用的是bridge默认网络
注3:
firewall-cmd --list-ports
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
3.上传hello.war至/data/tomcat/webapps目录
rz hello.war
4.测试crm项目
http://xx.xx.xx.xx:8080/crm/sys/loginAction.action?username=zs&password=123
注1:修改crm.war的数据库IP、数据库名及账号密码
注2:测试报错,不在同一个网络所以连不上
tomcat-0 -> bridge默认网络
mysql -> mynetwork自定义网络
二.部署web项目
向移植docker compose
# 版本号
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