环境:centos 8,docker 20.10.18
在使用 docker 容器引擎管理容器后,对服务器上各种软件安装、迁移都省下了不少气力。当我们要下载工具时,只需要到官方仓库 hub.docker.com/ 搜索对应软件(也可以通过指令 docker search ** ),找到下载指令到复制粘贴即可完成下载(如果在本地仓库存在,则不会下载,查看指令为 dokcer images ),下载之后只需启动容器即可。
我在使用 docker 下载 tomcat 后启动容器,在本地访问 ip:端口 显示 404(找不到资源),那就又到了找问题时间了。
首先是端口授权策略问题,因为我是用阿里云服务器,所以最先想到的就是“安全组配置”,到阿里云控制台查看,发现8080端口是授权状态,那就排除这个问题了。
其次是端口代理问题,我们知道,以前我们安装 tomcat 是直接在linux系统中装的,安装后可以直接访问,没什么问题;而使用 docker 后有一点改变,他的原理大概是这样的,在 linux 下安装 docker ,在 docker 下安装了 tomcat,这时候我们是没办法直接通过 ip:端口 访问的。这时候就需要我们在启动容器的时候,使用 -p 参数,用于指定端口代理,docker run -d -p 8080 tomcat 指令启动容器。但是问题来了,我启动容器就是用这个指令,所以也排除这个问题。
最后就是查看 tomcat 内部文件,我们知道当访问 tomcat 的时候,其实就是访问 tomcat 下的 webapps 文件夹下某个文件,既然 404 找不到资源,那就有可能是资源不存在的问题导致的。使用 docker exec -it 容器id bash 进入容器,发现有 webapps 和 webapps.dist 两个文件,进入webapps 文件夹下,发现没有文件,进入到 webapps.dist 却有。
找到问题,那就容易解决了,解决的问题有很多,我这里是修改原来 webapps 名字,再将 webapps.dist 修改为 webapps(只要能够保证 webapps 文件夹下有 webapps.dist 下的文件就行)。
指令如下:mv webapps webappsCopy
mv webapps.dist webapps
在通过 ip:端口 访问 tomcat ,就能正常访问了。
以上就是在 docker 下安装 tomcat 发现的问题,希望对你有帮助,如果有不同意见或者纰漏,请指出来,谢谢!