(八)Docker 部署 Tomcat 并部署 war 包访问
Docker 镜像加速器https://648gfzys.mirror.aliyuncs.com拉取 tomcat 镜像docker pull tomcatUsing default tag: latest运行 tomcat 镜像tomcat 默认内部端口为 8080docker run -d -p 8080:8080 --name mytomcat tomcat加上–restart=always
文章目录
前言
本文介绍在 Docker 中部署 tomcat ,并且发布 war 包。
404 问题
需要注意的是,Docker 中 tomcat 默认的镜像存在生成容器后无法直接访问的问题,也就是部署后会遇到 404,原因是 默认 tomcat 镜像的 /usr/local/tomcat/webapps 文件夹是空的,这个时候需要进入容器把 webapps 删除,然后将 webapps.dist 重新命名为 webapps。
再一个,在容器内部操作都是临时的,对于 tomcat 而言,一种解决方案修改完容器后生成新的镜像,另一个方案是使用文件挂载的方式,将宿主机上的文件夹同步到容器中的文件夹。
操作步骤
拉取最新的 tomcat 镜像
默认下载 latest 版本
docker search tomcat 可以查看更多资源
docker pull tomcat
运行 tomcat 容器
这里需要注意,使用 宿主器端口 8080 : 容器内部端口 8080
对容器命名为 mytomcat
## 例子1
docker run -d -p 8080:8080 --name mytomcat tomcat
## 例子2,--restart=always docker 启动时容器自动启动
docker run -d -p 8088:8080 --name mytomcat --restart=always tomcat
访问 localhost:8080 ,应该会报 404
查看 容器 id
这里查看结果为 afc4d15be3db
docker ps
进入 tomcat 容器
docker exec -it afc4d15be3db /bin/bash
解决 404 问题
rm -rf webapps
mv webapps.dist webapps
提交完毕之后可以访问 localhost:8080
制作成本地镜象 docker ps
为了一劳永逸的解决404问题,我们生成一个没有404问题的镜像,这里命名为 local_tomcat
# docker commit 容器id 镜像名称
docker commit afc4d15be3db (容器id) local_tomcat
删除 tomcat 容器
刚才的操作只是为了生成一个 没有 404 问题的 tomcat 镜像,所以这个原始的容器可以先删掉了。
Docker rm -f mytomcat
将宿主器文件夹挂载到 tomcat 容器
将待挂载文件夹内容复制到宿主机
由于挂载时,本地文件夹会覆盖容器中文件夹,所以我们需要先把容器中文件夹内容复制到宿主机,注意这里使用的是上面生成的tomcat 镜像 local_tomcat
- 启动一个local_tomcat的容器
docker run -d -p 8080:8080 --name mytomcat local_tomcat
- 将容器中 webapps 夹内容同步到本地一个文件夹——用于后期本地文件夹挂载到docker容器
docker cp 容器id:/usr/local/tomcat/webapps/ /宿主机文件夹路径/dockerfile/tomcat/webapps
- 再删除这个容器-
docker rm -f mytomcat
再启动-容器挂载宿主机 webapps
docker run -d -p 8080:8080 --name mytomcat -v /宿主机文件夹路径/dockerfile/tomcat/webapps/:/usr/local/tomcat/webapps/:rw -d tomcat
准备 war 包,重启 Docker
准备 war 包,放入 /宿主机文件夹路径/dockerfile/tomcat/webapps/
然后
docker restart mytomcat
更多推荐
所有评论(0)