m1 docker安装tomcat

背景

看到有同事尝试使用docker搭建tomcat服务,然后用nginx实现服务的负载均衡,但是遇到了挂载的问题,于是我在我自己的mac上尝试了一下。

实践过程

在本地新建tomcat的目录,下方挂载对应的数据文件和脚本文件。

m1 docker安装tomcat_第1张图片

其中,start.sh脚本的内容如下:

docker run -d \
    -v $PWD/myapp:/usr/local/tomcat/webapps/myapp \
    -p 8080:8080 \
    --name my-tomcat \
    docker.io/tomcat  

挂载的应用名称是myapp下的内容,并指定端口8080,应用的名称。

进入myapp目录并执行以下命令:

 echo "hello world" >index.html

浏览器访问地址:myapp

则会展示我的文本内容:

m1 docker安装tomcat_第2张图片

但是tomcat官方提供了很多的app,为什么不能使用呢?我有一个大胆的想法,把官方的服务也部署上去。

m1 docker安装tomcat_第3张图片

docker ps
docker exec -it e78 bash

进入容器,开整

m1 docker安装tomcat_第4张图片

这样,我把tomcat的app都部署了,浏览器访问

m1 docker安装tomcat_第5张图片

出现了403的错误
解决方案

首先在conf/tomcat-users.xml文件里面,在**前面**添加如下代码:遇到了坑,一定要配置在标签里

<role rolename="manager-gui"/>
<user password="admin" roles="manager-gui" username="tomcat"/>

出现了vim命令找不到的错误

apt-get update
apt-get install -y vim

重启容器,发现还是访问不了:访问的ip地受到了限制,我们打开**/webapps/manager/META-INF/目录下context.xml文件**

修改对应的为如下元素:

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />

查看

重启完成,访问管理页面 用户名、密码为刚才配置的

m1 docker安装tomcat_第6张图片

参考文章

  • tomcat管理页面403解决办法
  • docker容器中如法找到vim

你可能感兴趣的:(docker,tomcat,容器)