阿丹:

       之前在使用nginx部署搭建vue项目的时候没有出docker配置nginx的配置文档(因为之前使用的是腾讯云现成的nginx服务器),今天配置安装一下tomcat和nginx在docker里面的安装。

在docker中安装配置tomcat

操作解读:

       我们要完成的操作思路为:

        1、完成拉取镜像

        2、完成启动容器

        3、完成端口映射

        4、完成数据卷挂载

拉取镜像

拉取tomcat版本为9.0的

docker pull tomcat:9.0

如果需要最新版本

docker pull tomcat

 查看自己拉取的镜像

docker images

 

 创建并启动容器

要先创建并启动了容器然后配置文件中才能有相关的内容信息

使用代码:

docker run -p 8080:8080 --name 自己给容器取的名字 -d tomcat对应的版本

参数说明:

        -p 将tomcat的端口映射到本地的8080端口上去

        --name 是自己给tomcat这个容器起的一个名字

        -d 是指定的对应的版本号

 复制容器中的配置文件到主机中

解读:

        在我们安装完毕之后发现在我们linux的主机中找不到我们安装tomcat的路径,发现只有进入了容器内部才能访问以及发现配置文件。但是这就给我们之后部署项目产生了很大的困难。所以我们要配置数据卷,来将docker中tomcat容器中的配置文件以数据卷的方式映射出来。

docker cp tomcat:/usr/local/tomcat/conf/ /usr/local/docker/tomcat/conf/

docker cp tomcat:/usr/local/tomcat/logs/ /usr/local/docker/tomcat/logs/

docker cp tomcat:/usr/local/tomcat/webapps/ /usr/local/docker/tomcat/webapps/

docker cp tomcat:/usr/local/tomcat/work/ /usr/local/docker/tomcat/work/

docker cp tomcat:/usr/local/tomcat/temp/ /usr/local/docker/tomcat/temp/

docker cp tomcat:/usr/local/tomcat/webapps.dist/ /usr/local/docker/tomcat/webapps.dist/

代码说明:

        这个代码中的 tomcat:/user/local/tomcat/的这个路径是docker容器中的tomcat容器中的路径,然后我们要将这个路径映射到/usr/local/docker/tomcat这个路径下。

前面的路径是tomcat内部的路径,后面是我们linux中的路径。

这个参数是可变的,前面的第一个参数是不变的。后面的第二个路径是自己要复制的路径。

 运行完毕代码就能发现在我们的linux路径下的tomcat中多了以下东西。

 我们现在去访问自己的ip地址8080端口号发现是404是因为webapps文件夹下没有东西。

所以访问不到。

停止容器

docker stop tomcat

删除容器

docker rm tomcat

重新启动容器并挂载数据卷

docker run -p 8080:8080 --name tomcat \

-v /usr/local/docker/tomcat/conf/:/usr/local/tomcat/conf \

-v /usr/local/docker/tomcat/logs/:/usr/local/tomcat/logs \

-v /usr/local/docker/tomcat/webapps/:/usr/local/tomcat/webapps \

-v /usr/local/docker/tomcat/work/:/usr/local/tomcat/work \

-v /usr/local/docker/tomcat/temp/:/usr/local/tomcat/temp \

-d tomcat:latest

解读代码:

        -p 将tomcat的8080端口映射到主机的8080端口上

        -v 挂载数据卷

        -d 指定版本

 

 解决404问题

出现这个问题是因为webapps下面是空的

东西都在 webapps.dist中

 

 进入容器

查看容器id

docker ps -a

 

docker exec -it 容器id /bin/bash

 

 将webapps.dist下面的内容复制到webapps中

我使用了XShell工具来完成操作

 

注意原因:

在容器中使用rm -r webapps,删除webapps文件夹的时候,报出文件夹正在使用的错误。

导致将webapps.dist文件夹中文件失败。

所以这就是之前我们挂载数据卷的好处,外面的文件夹中数据和容器中的数据进行了同步,让我们可以使用可视化工具来完成代替代码的操作。

         

 

 

 

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: