# 9 常用容器部署-Tomcat
下面介绍一下常用容器的部署。可以先简单了解下,用到再来详细查看。
在 Docker 中部署 Tomcat 容器。
# 9.1 搜索镜像
首先搜索镜像,命令:
docker search tomcat
1
找到官方镜像:
# 9.2 拉取镜像
找到官方镜像,执行拉取,命令:
docker pull tomcat
1
# 9.3 启动容器
镜像下载完成就,就可以启动容器了。使用后台模式启动容器,并映射 8080 端口,并进行相应的容器卷挂载。
命令:
docker run -d -p 8080:8080 --name tomcat \
-v /home/doubi/tomcat/webapps:/usr/local/tomcat/webapps \
-v /home/doubi/tomcat/logs:/usr/local/tomcat/logs tomcat
1
2
3
2
3
解释一下:
-d
:后台运行;-p 8080:8080
:端口映射,宿主机的8080端口映射到容器的8080端口;--name tomcat
:给容器起个名字,自己随便起,这里叫tomcat;-v /home/doubi/tomcat/webapps:/usr/local/tomcat/webapps
:将宿主机的/home/doubi/tomcat/webapps
目录与容器的/usr/local/tomcat/webapps
目录进行映射,项目在这个目录下,这样将项目放到宿主机的目录下就可以了;-v /home/doubi/tomcat/logs:/usr/local/tomcat/logs
:将宿主机的/home/doubi/tomcat/logs
与容器的/usr/local/tomcat/logs
目录进行映射,日志在这个目录下,这样在宿主机就可以查看到 tomcat 的日志了;tomcat
:使用的镜像的名称。
# 9.4 存在的坑
容器启动后,访问宿主机的 8080 端口,会报 404 错误。
为什么呢?
tomcat 访问到的8080带三脚猫的首页,是在 webapps 目录下的,但是新版的 tomcat 的 webapps 下面是空,静态资源被放置到 webapps.dist
目录下了,所以就找不到首页了。
怎么处理呢?
我们可以进入到容器,将webapps.dist
目录下的内容拷贝到 webapps
目录下面。
# 进入容器
docker exit -it tomcat容器ID /bin/bash
# 进入到webapps.dist/目录
cd webapps.dist/
# 将webapps.dist/目录下的内容拷贝到webapps/目录下
cp -r * ../webapps/
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
拷贝完成后,重新刷新页面,出现了三脚猫。
大功告成!
# 9.5 同步容器内时间
如果容器内的时间不对,一般是时区不对导致的,设置时区即可。
首先进入到容器内。
然后查看一下时间:
date
1
如果时间不正确,则需要调整时区。
运行如下命令,来选择时区:
tzselect
1
会显示选择时区的选项,选择亚洲、中国、北京,最后确定。
然后再运行如下命令:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
1
此时再运行一下 date
命令查看一下时间是否正确。
如果容器内部的时间是正确的,而 tomcat 打印的日志时间不正确,则需要修改 tomcat 的配置。
首先进入容器,然后进入文件夹 /usr/local/tomcat/bin
部,编辑文件 catalina.sh
,在配置文件前面添加如下配置:
CATALINA_OPTS="$CATALINA_OPTS -Duser.timezone=Asia/Shanghai"
1