在docker下的tomcat容器中部署war包的两种方式
在docker下的tomcat容器中部署war包的两种方式
-
在tomcat镜像中部署javaweb项目
-
打包javaweb项目
像通常的javaweb项目部署一样,首先需要将javaweb项目打成war包,具体不再详述。
-
查看tomcat镜像启动的容器
docker ps
记录下tomcat镜像启动的容器的ID或容器名称。
-
方法一
-
将war包放入到docker下的tomcat中
首先你是需要把war包放入到centos系统中,本文中将一个test.war的项目放入centos系统的主目录,这个通过ssh工具就可以放到centos中,大家应该都很熟悉。从centos中将test.war移动到docker下tomcat镜像启动的容器中。
docker cp test.war containerID:/usr/local/tomcat/webapps/
说明:
containerID 是你所启动tomcat镜像的容器ID或者容器名称也可以。 这是将test.war放到tomcat的webapps下
-
通过镜像产生一个容器
docker run -p port1:port2 containerName:tag
docker run -p 8080:8080 tomcat:latest
-
启动一个已有的容器
docker start containerID/containerName
docker start admiring_turing
其中admiring_turing是tomcat镜像创建的一个容器名称,也可以使用其容器ID
-
停止一个容器
docker stop containerID/containerName
docker stop admiring_turing
-
重启一个容器
docker restart containerID/containerName
docker restart admiring_turing
-
与一个已经启动的容器进行交互式操作
docker exec -i -t containnerID/containerName /bin/bash
docker exec -i -t admiring_turing /bin/bash
-
复制文件到容器中
docker cp src_path container:dest_path
docker cp /test.txt admiring_turing:/usr/local/
test.txt 是自己创建的一个测试文件,将文件复制到了容器的/usr/local目录下。
-
在后台运行一个容器
docker run -d -p image:tag
docker run -d -p tomcat:latest
方法二:
进入Docker容器的文件目录,通过tomcat-users.xml 配置tomcat管理员
- 首先查看tomcat容器的CONTAINER ID :
docker ps
- 进入容器内部文件系统
进入容器内部 容器内部有一些设置文件 只能通过这种方式进入
交互式的进入tomcat容器。“docker exec”命令表示在运行中的容器中开启一个新的进程。
进入容器内部 容器内部有一些设置文件 只能通过这种方式进入
docker exec -it ea422adc42c5 bash
#进入webapps文件夹下查看一下存在的war包
cd webapps
- 进入tomcat的conf文件夹下:
[email protected]:/usr/local/tomcat/webapps# cd ..
[email protected]:/usr/local/tomcat# cd conf/
[email protected]:/usr/local/tomcat/conf# ls
Catalina catalina.properties jaspic-providers.xml logging.properties tomcat-users.xml web.xml
catalina.policy context.xml jaspic-providers.xsd server.xml tomcat-users.xsd
[email protected]:/usr/local/tomcat/conf#
[email protected]:/usr/local/tomcat/conf# vi tomcat-users.xml
bash: vi: command not found
[email protected]:/usr/local/tomcat/conf#
然后我们发现xml文件是无法直接用vi命令编辑的。
这里提供三种方法:
1.-v 挂载 docker run -v localConfigFile:/containerPath
2.exec 进入容器修改 docker exec -it containerID bash 可以安装vi进行修改
3.cp 可以将宿主机的配置文件拷贝到container中, docker cp host/path:/container/path
建议使用第三个
找到一个tomcat容器外部的已经配置好的tomcat-users.xml文件。
如何配置tomcat-users.xml文件可以参考(https://blog.****.net/qq_39530754/article/details/82387497)
如下:
我们将这个文件复制到Tomcat容器,将tomcat容器中的tomcat-users.xml覆盖。
#将xml文件cp到容器内部
docker cp tomcat-users.xml ea422adc42c5:/usr/local/tomcat/conf/
#进入容器内部查看
docker exec -it ea422adc42c5 bash
这是我的tomcat-users.xml文件:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="admin-gui,admin,manager-gui,manager,manager-script,manager-jmx,manager-status"/>
</tomcat-users>
黄色的证明拷贝进来了。
下面我们重启一下tomcat容器
docker restart ea422adc42c5
等待一会之后看是否配置成功,如果没有配置成功,则还需要配置另外两个xml文件。
可以参考(https://blog.****.net/qq_39530754/article/details/82387497)
将这些配置文件拷贝到tomcat容器的相应位置,
在重启,就可以啦~~
然后我们直接可以在这里部署我们的war包。