一、Docker安装

docker安装传送门

二、Tomcat安装

2.1、下载tomcat镜像

# 默认下载最新版本的tomcat
docker pull tomcat

三、启动tomcat

3.1、启动

# –name : 是给容器起一个别名,方便使用,不然docker会默认给容器一个随机字符串的名称
# -p : 前边的8080是本机的端口,冒号后面的8080是docker容器的端口,tomcat默认是8080
docker run -p 8080:8080 -d --name mytomcat2 tomcat:latest

这里需要注意的是-p命令,本机端口:docker中的应用的端口。两个端口的含义需要区分一下。
在这里插入图片描述

3.2、启动成功后访问tomcat首页出现404问题

在这里插入图片描述
这里其实已经说明,我们的tomcat已经起了。端口什么的都配好了。这里需要注意的是如果用的是云服务器,需要确认一下firewall、iptables等防火墙和安全策略是否都已经开启了你需要的端口。
解决方案
当通过下面的命令进入到docker中的tomcat中的时候,发现tomcat目录下多了下面截图中的一个webapps.dist目录

# 进度到mytomcat2应用中
docker exec -it mytomcat2 bash

在这里插入图片描述
进度到webapps.dist文件夹中,发现有类似webapps下的目录,而webapps下的那些目录却没有。
于是,可以将webapps.dist下的目录都拷贝一份到webapps目录中。

# 拷贝文件
cp -r webapps.dist/* ./webapps 

如下图,可以看到webapps.dist中的文件已经都拷贝到了webapps中。
在这里插入图片描述
再次访问的时候可以发现,已经能够跳出tomcat的管理界面了。
在这里插入图片描述

3.3、部署应用

这里需要将在宿主机上的应用,放到docker的tomcat应用中的webapps目录下。这里需要先退出到宿主机,然后再执行。

# 将本宿主机上的webapps目录下的所有文件拷贝到容器中的tomcat的webapps文件夹中
docker cp webapps/* 193d3c39bf5b:/usr/local/tomcat/webapps

访问页面可以看到已经能访问到页面了。
在这里插入图片描述

四、挂载的方式启动tomcat

4.1、创建存放tomcat的根目录

首先在系统下创建一个如下图的app目录,用来存放tomcat的外挂目录
在这里插入图片描述

4.2、创建tomcat相关目录

在这里插入图片描述

4.3、启动tomcat

docker run -d -p 8088:8080 --name tomcat -v /home/supervision_app/app/webapps:/usr/local/tomcat/webapps -v /home/supervision_app/app/logs:/usr/local/tomcat/logs -v /home/supervision_app/app/conf:/usr/local/tomcat/conf --restart=always tomcat

使用上面的命令行,run一个tomcat容器,发现容器未正常启动。

这是因为上面的命令中,我们也挂载了conf文件夹。这个是tomcat的配置文件夹。
必须把tomcat中的conf中的文件复制到挂载文件上(即/home/supervision_app/app/conf目录下需要有配置文件)

在这里插入图片描述

这里我们通过再启动一个tomcat容器,然后从容器中拷贝一个server.xml文件放到挂载conf文件夹中。

# 启动一个不做外部挂载的tomcat,命名为mytomcat2
docker run -p 8080:8080 -d --name mytomcat2 tomcat:latest

# 通过以下命令进度到容器中 
docker -it exec mytomcat2 bash

在这里插入图片描述
进入到tomcat中之后,可以看到容器中的配置文件目录为conf
在这里插入图片描述
执行拷贝命令

# 将tomcat容器中的配置文件拷贝到当前文件夹
docker cp mytomcat2:/usr/local/tomcat/conf/ ./home/supervision_app/conf/

在这里插入图片描述
在这里插入图片描述

重启tomcat,后发现已经可以启动了。
在这里插入图片描述
重新访问,我们发现已可以访问到。
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐