美文网首页技术篇
[Docker] 安装tomcat运行war包

[Docker] 安装tomcat运行war包

作者: objcat | 来源:发表于2019-01-28 15:38 被阅读145次

前文链接

[Docker] 入门教程
https://www.jianshu.com/p/7b3737df847d
ps: 不会安装的可以过来看看

前言

最近由于工作需要, 所以就着手研究了一下docker如何安装三条腿的猫, 所以下面就来记录一下.


一.快速开始

这里介绍两种方法(官方镜像安装和Dockerfile安装):

1.docker官方镜像安装

首先拉取镜像, 会自动拉取最新版本 - docker pull tomcat

[root@master ~]# docker pull tomcat
Using default tag: latest
Trying to pull repository docker.io/library/tomcat ...
latest: Pulling from docker.io/library/tomcat
ab1fc7e4bf91: Pull complete
35fba333ff52: Pull complete
f0cb1fa13079: Pull complete
3d79c18d1bc0: Pull complete
ff1d0ae4641b: Pull complete
8883e662573f: Pull complete
adab760d76bd: Pull complete
86323b680e93: Pull complete
14a2c1cdce1c: Pull complete
ee59bf8c5470: Pull complete
067f988306af: Pull complete
Digest: sha256:296b26baeee450a9814b2733e9d085f3d26af1c48e5fdc2000496ff7e12bc897
Status: Downloaded newer image for docker.io/tomcat:latest

查看镜像 - docker images

[root@master ~]# docker images
REPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE
objcat/tomcat                                         v1                  96ffa825838a        2 days ago          825 MB
docker.io/objcat/tomcat                               latest              2b0ce1615bdf        3 days ago          743 MB
docker.io/tomcat                                      latest              7ee26c09afb3        4 days ago          462 MB
docker.io/nginx                                       latest              42b4762643dc        5 days ago          109 MB
docker.io/centos                                      latest              1e1148e4cc2c        7 weeks ago         202 MB
registry.access.redhat.com/rhel7/pod-infrastructure   latest              99965fb98423        15 months ago       209 MB

我们可以看到有一个镜像叫docker.io/tomcat这就是docker的官方镜像.

接下来我们运行一下

docker run -idt -p 8081:8080 tomcat

这里把tomcat的8080端口映射到服务器的8081, 我们访问一下试试吧!

是不是非常简单呢?

下面我们就来运行一个war包, 首先我们要了解一下tomcat在虚拟机中的文件目录, 所以我们先进入虚拟机

[root@master ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
b2efd725feed        tomcat              "catalina.sh run"   5 minutes ago       Up 5 minutes        0.0.0.0:8081->8080/tcp   frosty_pike
[root@master ~]# docker exec -it b2efd725feed bash
root@b2efd725feed:/usr/local/tomcat# ls
BUILDING.txt     LICENSE  README.md  RUNNING.txt  conf     lib   native-jni-lib  webapps
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          include  logs  temp        work
root@b2efd725feed:/usr/local/tomcat#

我们可以发现有一个叫做webapp的目录, 我们的war包放到这里就可以运行了

下面我们就来准备一个war包, 目录是这样的

打包

接下来我们就运行这个war, 首先是发送文件上去

scp /Users/objcat/IdeaProjects/test/target/test.war root@xxx.xxx.xxx.xxx:/test.war

xxx.xxx.xxx.xxx是你的ip地址, 如果文件就在本地可以不用这一步操作.

然后改写一下docker命令

docker run -idt -p 8081:8080 -v /test.war:/usr/local/tomcat/webapps/test.war tomcat

这里面的参数都是非常易懂的, 比如-p就是映射端口, -v就是挂载, 我在之前的教程也说过了, 如果实在不明白可以去文章开头看看前文的docker教程, 我们继续.

之后我们再次访问一下

发现网页和接口都能访问通了, 证明配置是正确的, 本节结束.

2.Dockerfile安装

这里直接上脚本了, 如果不知道Dockerfile的用法, 去文章开头学习.

首先新建Dockerfile文件

cd /
vi Dockerfile

写入脚本

# 基于镜像
FROM centos
# 作者
MAINTAINER objcat
# 安装环境
RUN yum install java -y \
&& curl -O http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz \
&& tar -zxvf apache-tomcat-9.0.14.tar.gz \
&& mv apache-tomcat-9.0.14 tomcat \
&& rm -rf apache-tomcat-9.0.14.tar.gz
# 程序启动默认运行tomcat
CMD [ "/tomcat/bin/catalina.sh", "run" ]

然后编译生成镜像, 注意.一定别忘写了

docker build -t objcat/tomcat:v1 .

然后正常运行就可以了

docker run -idt -p 8081:8080 -v /test.war:/tomcat/webapps/test.war objcat/tomcat:v1

二.文章拓展

经过上面的文章, 想必你已经成功的搭建出了tomcat环境, 那么接下来我们就来拓展一些常用的功能.

1.开启tomcat应用管理功能

我们在做如图操作的时候经常是会出现上述的报错, 解决这个问题的方法很简单, 这里就简单的说一下, 首先复制上面的两行, 先修改一番, 把用户名和密码换成你喜欢的, 这里都换成了tomcat

<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>

然后编辑容器内的tomcat配置文件

docker ps
docker exec -it 646ebb97b6ba bash
vi /tomcat/conf/tomcat-users.xml

之后还需要修改ip访问规则, 否则无法访问

vi /tomcat/webapps/manager/META-INF/context.xml

注释掉这行即可

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

之后我们使用commit来保存镜像

➜  ~ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
6dbbd260e192        objcat/tomcat:v5    "/tomcat/bin/catalin…"   6 minutes ago       Up 6 minutes        0.0.0.0:8081->8080/tcp   awesome_bose
➜  ~ docker commit 6dbbd260e192 objcat/tomcat:v6
sha256:2da722c1a3dcdb88c07b63964661287d006cb768c93ee1849fc8c8dd1ee874ba

然后重新运行容器即可

docker stop xxx
docker run -it -p 8081:8080 objcat/tomcat:v6

finally enjoy it.

by objcat 2019.1.28

相关文章

网友评论

    本文标题:[Docker] 安装tomcat运行war包

    本文链接:https://www.haomeiwen.com/subject/gxoojqtx.html