引言

笔者最近学习docker时遇到一个棘手问题,说这个问题多么严重其实也无所谓不影响正常的使用,但是身为一名初学的开发人员经典的Tom猫欢迎页都看不见就有点说不过去了(手动滑稽)。好了言归正转问题是这样的就是在阿里云hub拉取的Tomcat无法访问输入完ip+port后看不见欢迎页,刚开始时笔者以为是不是虚拟机下装的centos7采用nat方式配置的原因,但是在本地是可以ping通的,那到底是什么原因呢?请读者接着向下看!

分析并解决

注意:笔者拉取的是docker下的tomcat(8.5.50),其它版本笔者没有测试

首先Linux下启动docker中的tomcat容器
输入

docker run -it -p8080:8080  tomcat

注意:此处可以用-p指定固定端口(前者为docker对外暴露的端口,后者为docker内部转发的端口)也可以用-P指定随机端口,读者根据需求随意指定

将会看到tomcat启动日志

docker desktop windows 无法登录账号连接仓库 docker 2375 无法访问_无法访问


看到启动成功以后,此时我们退出此容器注意并不是停止容器,而是以后台运行,键盘输入ctrl+q+p 退出

输入

docker ps

docker desktop windows 无法登录账号连接仓库 docker 2375 无法访问_tomcat_02


此处可以看到docker下tomcat容器仍然在运行且可以看到端口转发从8080->8080

docker desktop windows 无法登录账号连接仓库 docker 2375 无法访问_无法访问_03


按道理是可以正常访问的,但是此处笔者就无法访问了

无奈之下,笔者进入了docker下tomcat容器中的目录下去查看原因
输入

docker exec -it 355d7def0257  /bin/bash

可以看到目录结构为:

docker desktop windows 无法登录账号连接仓库 docker 2375 无法访问_无法访问_04


对比win10下的tomcat

docker desktop windows 无法登录账号连接仓库 docker 2375 无法访问_无法访问_05


发现多了一个文件夹为webapps.dist

我们都知道tomcat工程发布以后是要放在webapps下运行的,所以查看以后发现它将欢迎页的内容均放在了webapps.dist下,so …不用笔者说了,果断改名、删除一气呵成

输入

rmdir webapps

改名

mv webapps.dist  webapps

重新访问

docker desktop windows 无法登录账号连接仓库 docker 2375 无法访问_无法访问_06


成功

总结

本次虽然遇到的这个问题不是非常严重但是对于发现并解决问题能力而言还是有一定的帮助的,并且顺便复习了下Docker的基础命令操作。至于为什么会有webapps.dist还请知道的读者给我留言或者私信。