1 搜索tomcat镜像
$ sudo docker search tomcat NAME DESCRIPTION STARS OFFICIAL AUTOMATED tomcat Apache Tomcat is an open source implementati… 2318 [OK] tomee Apache TomEE is an all-Apache Java EE certif… 64 [OK] dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base… 52 [OK] davidcaste/alpine-tomcat Apache Tomcat 7/8 using Oracle Java 7/8 with… 34 [OK] bitnami/tomcat Bitnami Tomcat Docker Image 27 [OK] cloudesire/tomcat Tomcat server, 6/7/8 14 [OK] meirwa/spring-boot-tomcat-mysql-app a sample spring-boot app using tomcat and My… 12 [OK] tutum/tomcat Base docker image to run a Tomcat applicatio… 11 aallam/tomcat-mysql Debian, Oracle JDK, Tomcat & MySQL 11 [OK]
...
2 下载tomcat镜像
下载自己需要的版本TAG,详见:
docker安装指定版本TAG的镜像
$ sudo docker pull tomcat:8-jre8
3 运行容器
$ sudo docker run -d --name=tomcat -p 8080:8080 -v /etc/localtime:/etc/localtime tomcat:8-jre8
命令说明:
-d : 以守护线程运行容器
--name tomcat: 将容器的名字命名为tomcat
-p 8080:8080将容器的8080端口映射到主机的8080端口
-v /etc/localtime:/etc/localtime : 将主机的系统时间映射至tomcat容器,作为tomcat容器的系统时间(不然tomcat容器的系统时间和主机的系统时间,会相差8小时)
tomcat:8-jre8 : 需要安装的镜像名称
4 查看容器启动情况
$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 913ab69daebf tomcat:8-jre8 "catalina.sh run" 2 minutes ago Up 2 minutes 0.0.0.0:8080->8080/tcp tomcat
通过浏览器访问
5 部署项目
5.1 确定项目部署路径
需要部署的项目,应该部署到docker tomcat容器里的哪个目录呢?
$ sudo docker exec -it tomcat /bin/bash root@913ab69daebf:/usr/local/tomcat#
可以看到进入tomcat容器后,目录自动定位在/usr/local/tomcat,即表示,/usr/lcoal/tomcat为tomcat的根目录。项目的部署地址,自然是/usr/local/tomcat/webapps/下。
5.2 上传项目war包到Linux主机
本文以一个名为demo.war为例,放到了主机的/home目录下
$ sudo ls /home/ demo.war
5.3 将主机中的war包,复制到tomcat容器中
$ sudo docker cp /home/demo.war tomcat:/usr/local/tomcat/webapps
进入tomcat容器查看nexus.war是否已复制到/usr/local/tomcat/webapps目录
$ sudo docker exec -it tomcat /bin/bash root@913ab69daebf:/usr/local/tomcat# ls webapps/ ROOT docs examples host-manager manager demo demo.war
由于tomcat是启动状态,所以可以看到在webapps目录下,除了demo.war外,还解压了一个demo目录