docker 安装 tomcat
查找服务器的 tomcat 信息
[root@docker ~]# docker search tomcat
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
tomcat Apache Tomcat is an open source implementati… 2207 [OK]
tomee Apache TomEE is an all-Apache Java EE certif… 59 [OK]
dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base… 50 [OK]
davidcaste/alpine-tomcat Apache Tomcat 7/8 using Oracle Java 7/8 with… 31 [OK]
bitnami/tomcat Bitnami Tomcat Docker Image 27 [OK]
consol/tomcat-7.0 Tomcat 7.0.57, 8080, "admin/admin" 16 [OK]
cloudesire/tomcat Tomcat server, 6/7/8 15 [OK]
tutum/tomcat Base docker image to run a Tomcat applicatio… 11
meirwa/spring-boot-tomcat-mysql-app a sample spring-boot app using tomcat and My… 10 [OK]
aallam/tomcat-mysql Debian, Oracle JDK, Tomcat & MySQL 9 [OK]
jeanblanchard/tomcat Minimal Docker image with Apache Tomcat 8
arm32v7/tomcat Apache Tomcat is an open source implementati… 6
rightctrl/tomcat CentOS , Oracle Java, tomcat application ssl… 3 [OK]
maluuba/tomcat7-java8 Tomcat7 with java8. 3
arm64v8/tomcat Apache Tomcat is an open source implementati… 2
fabric8/tomcat-8 Fabric8 Tomcat 8 Image 2 [OK]
amd64/tomcat Apache Tomcat is an open source implementati… 2
99taxis/tomcat7 Tomcat7 1 [OK]
primetoninc/tomcat Apache tomcat 8.5, 8.0, 7.0 1 [OK]
swisstopo/service-print-tomcat backend tomcat for service-print "the true, … 0
picoded/tomcat7 tomcat7 with jre8 and MANAGER_USER / MANAGER… 0 [OK]
oobsri/tomcat8 Testing CI Jobs with different names. 0
cfje/tomcat-resource Tomcat Concourse Resource 0
jelastic/tomcat An image of the Tomcat Java application serv… 0
s390x/tomcat Apache Tomcat is an open source implementati… 0
[root@docker ~]#
下载官方的 tomcat 镜像
[root@docker ~]# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
54f7e8ac135a: Pull complete
d6341e30912f: Pull complete
087a57faf949: Pull complete
95065f220961: Pull complete
0887630ce576: Pull complete
c375d1959fab: Pull complete
e00a5e6055cc: Pull complete
8319f5fb56cf: Pull complete
258c74eb25ab: Pull complete
6eb86d11d371: Pull complete
adb5a4a6adf5: Pull complete
4685b434f297: Pull complete
Digest: sha256:e394c2f94eee344300e68d7183f3f19d272316f9691b280ac0e3911ea610e590
Status: Downloaded newer image for tomcat:latest
[root@docker ~]#
查看 docker 所有的镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
runoob/centos 6.7 be5e1d8bd085 8 days ago 191MB
runoob/centos dev be5e1d8bd085 8 days ago 191MB
runoob/ubuntu v2 b14eca5fdbcb 8 days ago 137MB
ubuntu 14.04 f17b6a61de28 2 weeks ago 188MB
tomcat latest 78b258e36eed 2 weeks ago 463MB
httpd latest 2a51bb06dc8b 3 weeks ago 132MB
zookeeper 3.4.13 f336949ce7a1 6 weeks ago 148MB
mysql 5.7.23 1b30b36ae96a 7 weeks ago 372MB
centos 6.7 192ad0341c8b 8 weeks ago 191MB
centos latest 75835a67d134 8 weeks ago 200MB
hello-world latest 4ab4c602aa5e 3 months ago 1.84kB
ubuntu 15.10 9b9cb95443b5 2 years ago 137MB
training/webapp latest 6fae60ef3446 3 years ago 349MB
[root@docker ~]#
使用镜像启动 tomcat 容器
1、查看 docker 中 tomcat 的路径
- 方法一:查看 docker hub 上的 tomcat 的官方说明
- 方法二:测试
这里介绍测试来查看 docker 中 tomcat 的路径:
# 创建一个tomcat容器,这个容器是临时的
docker run --name tomcat-1 -P -d tomcat
说明:
- –name tomcat-1 :定义容器的名字为 tomcat-1
- -P :把容器的端口随机映射到本机的一个端口
- -d :后台运行容器
- tomcat :镜像的名字
查看当前正在运行的容器:
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4a55582ba1c tomcat "catalina.sh run" 5 seconds ago Up 5 seconds 0.0.0.0:32768->8080/tcp tomcat-1
8177759ce014 zookeeper:3.4.13 "/docker-entrypoint.…" 8 days ago Up About an hour 2888/tcp, 0.0.0.0:2181->2181/tcp, 3888/tcp zookeeper-1
88a992988696 mysql:5.7.23 "docker-entrypoint.s…" 8 days ago Up About an hour 0.0.0.0:3306->3306/tcp, 33060/tcp mysql-1
[root@docker ~]#
说明:
- 0.0.0.0:32768->8080/tcp :docker 中的 8080 端口映射到了本机的 32768 端口
测试:访问:http://192.168.25.11:32768/
tomcat 已经运行起来了,现在就进去容器内部,查找容器地址:
[root@docker ~]# docker exec -it tomcat-1 /bin/bash
root@d4a55582ba1c:/usr/local/tomcat# pwd
/usr/local/tomcat
root@d4a55582ba1c:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf include lib logs native-jni-lib temp webapps work
root@d4a55582ba1c:/usr/local/tomcat#
说明:
- -it :是进入交互模式
- tomat-1 :是该容器的名字
该容器地址为:/usr/local/tomcat
把 docker 中 tomcat 的 conf 、 webapps 、 logs 这三个目录拷贝到本机:
[root@docker ~]# docker cp tomcat-1:/usr/local/tomcat/conf /my-docker/my-tomcat/
[root@docker ~]# docker cp tomcat-1:/usr/local/tomcat/webapps /my-docker/my-tomcat/
[root@docker ~]# docker cp tomcat-1:/usr/local/tomcat/logs /my-docker/my-tomcat/
说明:
- tomat-1 : 容器的名字
- /usr/local/tomcat/conf : 容器中 tomcat 的 conf 目录
- /my-docker/my-tomcat/ : 本机准备存放的目录
现在我本机的my-tomcat文件夹里有webapps conf logs 这三个目录了。
把之前的 tomcat-1 容器删掉:
- 停掉容器:docker stop tomcat-1
- 删除容器:docker rm tomcat-1
通过映射来启动 tomcat
[root@docker ~]# docker run -P --name tomcat-1 -v /my-docker/my-tomcat/webapps:/usr/local/tomcat/webapps -v /my-docker/my-tomcat/conf:/usr/local/tomcat/conf -v /my-docker/my-tomcat/logs:/usr/local/tomcat/logs -d tomcat
775aa522589151df6c2ff5825840feaa91d746a47fea2a2b71a53ad68aeba5de
[root@docker ~]#
说明:
- -v 把 docker 中的 webapps 、 logs 、 conf 目录分别映射到本机的 tomcat-1 中对应的目录中
映射有什么好处:
就是把 war 包扔到本机的 /my-docker/my-tomcat/webapps 中就可以了 ,docker 自动会部署到 tomcat 中的。修改了本机 conf 中的配置文件,docker 中的配置文件也会立即生效。