前言
docker pull image[:tag]
前,如果不清楚镜像服务器(docker registry)支持的镜像版本(tag),那么可以到 docker hub 上查看镜像的版本(tag)。以 mysql 为例,如下图:
tomcat
提醒:注意不要用最新的tomcat
,最新的仅支持jdk 11 and later
。tomcat版本的选择请参考apache官网
>tomcat>Which version?
中列举信息,如下图:
踩坑:使用最新的tomcat版本(10.0.14),放jdk8编译和jdk11编译的war包到webapps中,结果都是单纯解压war包,springboot启动的信息一点都没有打印,项目也没有跑起来。换成 tomcat9 的镜像就跑起来了。
原因是:tomcat9 升级到 tomcat10,很多 api 的包名都从 javax.* 变成了 jakarta.*,而 DispatcherServlet 继承的是javax.servlet.http.HttpServlet,故项目在 tomcat9 正常运行而 tomcat10 报错404。apache官方也给出了工具方便我们二次编译war包,如下图。
1. docker search tomcat
2. docker pull tomcat:9
3. docker run --name tomcat -p 8080:8080 -v /volume/tomcat/data/:/usr/local/tomcat/webapps -v /volume/tomcat/upload/:/usr/local/tomcat/upload -v /etc/localtime:/etc/localtime:ro -e TZ="Asia/Shanghai" -d tomcat:9
mysql
docker pull mysql:5.7