docker 容器下运行tomcat 部署应用

docker安装tomcat

查找Docker Hub上的tomcat镜像

[email protected]:~/tomcat$ docker search tomcat
NAME                       DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
tomcat                     Apache Tomcat is an open source implementa...   744       [OK]       
dordoka/tomcat             Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba...   19                   [OK]
consol/tomcat-7.0          Tomcat 7.0.57, 8080, "admin/admin"              16                   [OK]
consol/tomcat-8.0          Tomcat 8.0.15, 8080, "admin/admin"              14                   [OK]
cloudesire/tomcat          Tomcat server, 6/7/8                            8                    [OK]
davidcaste/alpine-tomcat   Apache Tomcat 7/8 using Oracle Java 7/8 wi...   6                    [OK]
andreptb/tomcat            Debian Jessie based image with Apache Tomc...   4                    [OK]
kieker/tomcat                                                              2                    [OK]
fbrx/tomcat                Minimal Tomcat image based on Alpine Linux      2                    [OK]
jtech/tomcat               Latest Tomcat production distribution on l...   1                    [OK]

这里我们拉取官方的镜像

docker pull tomcat

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为tomcat的的镜像。

[email protected]:~/tomcat$ docker images|grep tomcat
tomcat              latest              70f819d3d2d9        7 days ago          335.8 MB

使用Tomcat的镜像

docker run --name tomcat -p 8080:8080 -v /usr/local/tomcat/webapps/test:/usr/local/tomcat/webapps/test -d tomcat  

命令说明:

-p 8080:8080:将容器的8080端口映射到主机的8080端口

-v / usr / local / tomcat / webapps / test:/ usr / local / tomcat / webapps / test:将主机中当前目录下的test挂载到容器的/ test

查看容器启动情况

[email protected]:~/tomcat$ docker ps 
CONTAINER ID    IMAGE     COMMAND               ... PORTS                    NAMES
acb33fcb4beb    tomcat    "catalina.sh run"     ... 0.0.0.0:8080->8080/tcp   tomcat

通过浏览器访问

docker 容器下运行tomcat 部署应用

 

部署战争应用

假如我们的应用在目录:在/ usr /本地/ Tomcat的/ webapps中目录下

服务启动后把对应的战争包拷贝到容器中

docker cp moneylaundering.war tomcat:/usr/local/tomcat/webapps
其中:–privileged=true是授予docker挂载的权限 
/Users/apple/webapp宿主主机目录 
/usr/local/tomcat/webapps/demo docker容器tomcat目录 
-p 端口映射 
–name 容器名称

部署应用

进入已经启动的容器

docker exec -it containerID /bin/bash

只需要把对应的jar copy到容器下面就可以了前提是需要有对应的JDK环境

 docker cp ruoyi-admin.jar tomcat:/usr/local

然后启动应用 

nohup java -jar ruoyi-admin.jar &

然后看对应的启动日志

tail -f  nohup.out