Docker安装Tomcat,部署war包,链接单机上的mysql容器
安装docker
安装tomcat
获取镜像
# 搜索redis镜像
docker search tomcat
# 拉取最新版本不需要加:8.5.5,这里使用8.5.5版本
docker pull tomcat:8.5.5
# 查看本地镜像
docker images
运行容器
docker run -itd \
--restart=always \
--privileged=true \
--name=tomcat-admin \
-v /etc/localtime:/etc/localtime \
-p 8080:8080 tomcat:8.5.5
查看运行时容器
docker ps
宿主机下新建tomcat目录
mkdir /home/docker/tomcat -p
复制容器里conf,webapps到宿主机
docker cp 容器id:/usr/local/tomcat/conf /home/docker/tomcat/
docker cp 容器id:/usr/local/tomcat/webapps /home/docker/tomcat/
关掉容器,删除容器
docker stop 容器ID
docker rm 容器ID
创建新容器,把容器里的tomcat里的webapp,logs,conf挂载到宿主机tomcat目录下,方便上传代码,同步持久化日志,以及方便配置tomcat
docker run -itd \
--restart=always \
--privileged=true \
--name=tomcat-admin \
-v /home/docker/tomcat/webapps:/usr/local/tomcat/webapps \
-v /home/docker/tomcat/conf:/usr/local/tomcat/conf \
-v /home/docker/tomcat/logs:/usr/local/tomcat/logs \
-e TZ=Asia/Shanghai \
--link mysql:mysql-102 \
-p 8080:8080 tomcat:8.5.5
命令说明:
docker run -itd \
--restart=always \
--privileged=true \
--name=tomcat-admin \ # 容器名
-v /home/docker/tomcat/webapps:/usr/local/tomcat/webapps \ # 挂载webapps目录
-v /home/docker/tomcat/conf:/usr/local/tomcat/conf \ # 挂载配置目录
-v /home/docker/tomcat/logs:/usr/local/tomcat/logs \ # 挂载日志目录
-e TZ=Asia/Shanghai \ # 指定时区
--link mysql:mysql-102 \ # 链接单机上mysql容器 容器名:别名,代码中链接数据库时写入别名
-p 8080:8080 tomcat:8.5.5 # 端口映射 宿主机端口:容器端口
链接mysql容器,代码中的写法
PS:-v /etc/localtime:/etc/localtime 似乎不起作用,直接指定时区,让容器时间与宿主机时间保持一致
docker安装mysql
访问tomcat,ip:8080
配置tomcat server.xm
<Context path="" docBase="/usr/local/tomcat/webapps/war包名" debug="0" reloadable="false" />
可参考: 修改tomcat默认上下文路径.
上传war包
# 进入宿主机tomcat/webapps目录
cd /home/docker/tomcat/webapps
# 上传war包
rz
重启容器
docker restart 容器名/容器ID
查看日志
docker logs 容器名/容器ID