首先我的环境是 阿里云上的 centos 7
。
1、获取tomcat镜像
我安装的是 8.5
版本,如果需要最新版,下面的命令需要删除 :8.5
docker pull tomcat:8.5
安装完成后,通过 docker images
查看是否安装成功。
2、新建并启动容器
docker run --name tomcat01 -p 8080:8080 -d tomcat:8.5
上面的命令解释如下:
--name "新名称" 为容器指定一个新的名称;
-d 后台运行容器,并返回容器ID,也即启动守护式容器;
-p 指定端口映射,上面的命令:容器中的8080端口映射到主机的8080
3、浏览器访问tomcat
在浏览器中输入 http://你的主机地址:8080/
这时出现了如下的问题:
4、原因
查看了docker hub
官方中 tomcat
的安装,有如下一句话:
You can then go to http://localhost:8888 or http://host-ip:8888 in a browser (noting that it will return a 404 since there are no webapps loaded by default).
意思就是说你可以通过 主机地址:8888
地址访问,但是什么都不会得到,只会返回404,因为默认情况下 webapps
没有加载。
5、问题解决
通过如下命令进入tomcat
容器:
docker exec -it 2976990f5235 /bin/bash
ls -l
查看容器下的文件
发现容器中有 webapps
和 webapps.dist
两个文件,我们可以分别打开看一下:
嗯?webapps.dist
中的内容不应该是 webapps
中的文件吗。所以这时我们可以先把 webapps
文件删除,然后 webapps.dist
更名为 webapps
:
rm -rf webapps
mv webapps.dist webapps
重新访问 http://你的主机地址:8080/
就可以了。
开始还是访问不到,清理了浏览器缓存就可以了。