docker使用tomcat部署web应用

docker 在容器里使用tomcat部署web应用

首先docker pull tomcat,把镜像下载到本地,然后可以查看已有镜像

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              1a51cb5e3006        3 months ago        462MB

再利用镜像创建容器
docker run -d -p 8081:8080 tomcat

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
004bc201b4e7        tomcat              "catalina.sh run"   3 months ago        Up 5 hours          0.0.0.0:8081->8080/tcp   dreamy_jepsen

方式1:直接拷贝应用部署

docker cp shrcb.war 004bc201b4e7 :/usr/local/tomcat/webapps
把war从本地拷贝至容器对应的tomcat部署文件目录,启动tomcat后会自动解压war包

方式2:挂载方式进行部署

docker run -d -v /usr/docker_file/shrcb.war:/usr/local/tomcat/webapps/shrcb.war -p 8080:8080 tomcat
把本地的war包挂载到容器里tomcat的部署目录,映射本地端口 8080到容器的8080端口

方式3:创建Dockfile文件部署

vi Dockerfile
from tomcat:latest #你的 tomcat的镜像
MAINTAINER [email protected] #维护者信息
COPY shrcb.war /usr/local/tomcat/webapps #把war包放置到容器里tomcat的webapps目录下
生成新镜像
docker build -t shrcb-web:v1 .
注意:shrcb.war要和Dockerfile放在同一目录里

镜像的迁移

如果想要把部署好的项目移植到其他环境或者服务器,比如从开发环境到测试环境,那么此时直接制作镜像,然后移植到测试环境。

制作步骤

1.创建运行脚本

首先创建运行脚本,当启动容器时,运行该脚本用于启动 Tomcat,具体过程如下:
首先,创建运行脚本(可以进入容器里直接创建(如果容器支持vi的话),否则可以直接在宿主机创建好,然后复制到容器里):

vi /root/run.sh

然后,编辑内容:

#!/bin/bash
sh /usr/local/tomcat/bin/catalina.sh run

注意:这里必须加#!/bin/bash,否则后期运行容器后,容器无法启动,如果容器内部。
最后,为运行脚本添加执行权限:
chmod u+x /root/run.sh

2.制作镜像

使用部署好项目的容器来创建镜像,或者直接导出容器为镜像
1> 使用容器创建镜像
docker commit 6e24efbbcc36 webapp/project:v1.0
利用容器id:6e24efbbcc36 创建镜像webapp/project:v1.0
镜像导出
docker save -o webapp.tar webapp/project:v1.0

2> 导出容器为镜像
先导出tar包
docker export -o webapp.tar 6e24efbbcc36

3.镜像的迁移

切换到另外一台服务器,把上述导出的tar包传至此服务器
a>如果是save导出的镜像
使用load导入
docker load -i webapp.tar
b>如果是export导出的镜像
使用import导入
docker import webapp.tar webapp/project:v1.0
接下来,使用镜像启动容器
docker run -d -p 8080:8080 webapp/project:v1.0 /root/run.sh

你可能感兴趣的:(docker使用tomcat部署web应用)