> 文档中心 > Docker使用(二) — Docker安装Tomcat

Docker使用(二) — Docker安装Tomcat

标题

  • 1、安装一个简易tomcat
    • 1.1、拉取tomcat
    • 1.2、创建tomcat容器
    • 1.3、访问tomcat
    • 1.4、日志查询
    • 1.5、修改时区
  • 2、tomcat挂载
    • 2.1、创建挂载目录
    • 2.2、拷贝docker资源
    • 2.3、挂载启动
    • 2.4、访问测试
    • 2.5、挂载验证
    • 2.6、修改时区

1、安装一个简易tomcat

1.1、拉取tomcat

# 安装最新版docker pull tomcat# version为指定的版本docker pull tomcat:version

1.2、创建tomcat容器

docker run --name tomcat_test -p 9090:8080 -d tomcat#--name tomcat_test: tocmat容器名称 自定义#-p:9090:8080: 端口映射 9090任意,8080为默认端口#-d:后台运行

通过docker ps查看运行状态,可以看到刚才创建的tomcat已经运行了,并且端口映射为9090,名称也为tomcat_test
在这里插入图片描述

1.3、访问tomcat

直接在地址输入 IP+9090即可查看,如果无法访问,则需要等Tomcat成功启动,或者查看日志是否报错

在这里插入图片描述

对于高版本的tomcat,webapps文件为空,被webapps.dist所取代,直接访问会出现404
在这里插入图片描述
解决方法如下:

  • 进入容器
docker exec -it tomcat_test bash 
  • 进入tomcat目录
cd /usr/local/tomcat/
  • 删除webapps
rm webapps -rf
  • 将webapps.dist复制为webapps
cp webapps.dist webapps -r

在这里插入图片描述

1.4、日志查询

#动态查看日志docker logs -f tomcat_test

在这里插入图片描述

1.5、修改时区

默认情况下,tomcat中的时间比“北京”时间少8小时,需要进行手动时间校正

#进入容器docker exec -it tomcat_test bash#执行命令cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeecho "Asia/Shanghai" > /etc/timezone

2、tomcat挂载

2.1、创建挂载目录

mkdir /usr/local/tomcat -p

2.2、拷贝docker资源

# 从容器中复制webapps.dist(低版本叫webapps)# /usr/local/tomcat/webapps.dist 为docker中容器的目录# /usr/local/tomcat/webapps 为宿主机的目录 docker cp tomcat_test:/usr/local/tomcat/webapps.dist/ /usr/local/tomcat/webapps
#查看目录cd /usr/local/tomcat/webappsll

在这里插入图片描述

2.3、挂载启动

启动挂载容器前,需要先关闭并且删除原有的容器

docker stop tomcat_testdocker rm tomcat_test

启动挂载容器

# -v表示挂载,前面的目录为宿主机目录结构,后面的目录为容器中的目录结构docker run --name tomcat_test  \-p 9090:8080 \-v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps \-d tomcat

2.4、访问测试

在这里插入图片描述

2.5、挂载验证

为了验证挂载文件是否生效,可以进入在宿主机器下建立的文件的ROOT目录,并且修改tomcat “欢迎页”的代码;

  • 进入宿主机挂载ROOT目录
    cd  /usr/local/tomcat/webapps/ROOT
  • 修改index.jsp
    vim index.jsp

    修改见图:
    在这里插入图片描述

  • 再次访问Tomcat
    在这里插入图片描述

2.6、修改时区

默认情况下,tomcat中的时间比“北京”时间少8小时,需要进行手动时间校正

#进入容器docker exec -it tomcat_test bash#执行命令cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeecho "Asia/Shanghai" > /etc/timezone

VR资源云