Docker学习笔记(七)自定义tomcat镜像

一、准备工作

在宿主机上创建一个tomcat文件夹用来存放我们的压缩文件。

第一步:创建一个tomcat文件夹
mkdir tomcat
第二步:把我们需要的压缩包放进去,以便我们查找文件
scp -P 1111 -r jdk-8u301-linux-x64.tar.gz root@127.0.0.1:/wj/tomcat
scp -P 1111 -r apache-tomcat-9.0.14.tar.gz root@127.0.0.1:/wj/tomcat
二、编写dockerfile文件
FROM centos
MAINTAINER wj<893932747@qq.com>
#这里是复制文件到指定的文件
COPY explain.txt /usr/local/explain.txt
#使用ADD命令会自动给解压
ADD jdk-8u301-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.55.tar.gz /usr/local/
#安装vim
RUN yum -y install vim
#设置默认目录,只要进来就在这个目录
ENV MYPATH /usr/local
#设置工作目录
WORKDIR $MYPATH

#配置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_301
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.55
ENV CATALINA_BASH /usr/loocal/apache-tomcat-9.0.55
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#暴漏一个端口
EXPOSE 8080
#创建后就启动并输出日志
CMD /usr/local/apache-tomcat-9.0.55/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.55/bin/logs/catalina.out
三、生成镜像

docker build -t diytomcat .

[root@muyuan tomcat]# docker build -t diytomcat .
Sending build context to Docker daemon  181.8MB
Step 1/15 : FROM centos
 ---> 5d0da3dc9764
Step 2/15 : MAINTAINER wj<893932747@qq.com>
 ---> Running in a7807975fb82
Removing intermediate container a7807975fb82
 ---> 6977c05ad774
Step 3/15 : COPY explain.txt /usr/local/explain.txt
 ---> 2d761deed0bb
Step 4/15 : ADD jdk-8u301-linux-x64.tar.gz /usr/local/
 ---> b8e7e60e8913
Step 5/15 : ADD apache-tomcat-9.0.14.tar.gz /usr/local/
 ---> 6a359021e161
Step 6/15 : RUN yum -y install vim
 ---> Running in 68aa97c75713
CentOS Linux 8 - AppStream                       20 kB/s | 7.9 MB     06:37
CentOS Linux 8 - BaseOS                         3.1 MB/s | 2.6 MB     00:00
CentOS Linux 8 - Extras                          14 kB/s |  10 kB     00:00
Dependencies resolved.
================================================================================
 Package             Arch        Version                   Repository      Size
================================================================================
Installing:
 vim-enhanced        x86_64      2:8.0.1763-16.el8         appstream      1.4 M
Installing dependencies:
 gpm-libs            x86_64      1.20.7-17.el8             appstream       39 k
 vim-common          x86_64      2:8.0.1763-16.el8         appstream      6.3 M
 vim-filesystem      noarch      2:8.0.1763-16.el8         appstream       49 k
 which               x86_64      2.21-16.el8               baseos          49 k

Transaction Summary
================================================================================
Install  5 Packages

Total download size: 7.8 M
Installed size: 30 M
Downloading Packages:
(1/5): gpm-libs-1.20.7-17.el8.x86_64.rpm         15 kB/s |  39 kB     00:02
(2/5): vim-filesystem-8.0.1763-16.el8.noarch.rp 9.4 kB/s |  49 kB     00:05
(3/5): which-2.21-16.el8.x86_64.rpm             460 kB/s |  49 kB     00:00
(4/5): vim-enhanced-8.0.1763-16.el8.x86_64.rpm   13 kB/s | 1.4 MB     01:46
(5/5): vim-common-8.0.1763-16.el8.x86_64.rpm    7.7 kB/s | 6.3 MB     14:07
--------------------------------------------------------------------------------
Total                                           9.4 kB/s | 7.8 MB     14:08
warning: /var/cache/dnf/appstream-02e86d1c976ab532/packages/gpm-libs-1.20.7-17.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
CentOS Linux 8 - AppStream                      1.6 MB/s | 1.6 kB     00:00
Importing GPG key 0x8483C65D:
 Userid     : "CentOS (CentOS Official Signing Key) <security@centos.org>"
 Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : which-2.21-16.el8.x86_64                               1/5
  Installing       : vim-filesystem-2:8.0.1763-16.el8.noarch                2/5
  Installing       : vim-common-2:8.0.1763-16.el8.x86_64                    3/5
  Installing       : gpm-libs-1.20.7-17.el8.x86_64                          4/5
  Running scriptlet: gpm-libs-1.20.7-17.el8.x86_64                          4/5
  Installing       : vim-enhanced-2:8.0.1763-16.el8.x86_64                  5/5
  Running scriptlet: vim-enhanced-2:8.0.1763-16.el8.x86_64                  5/5
  Running scriptlet: vim-common-2:8.0.1763-16.el8.x86_64                    5/5
  Verifying        : gpm-libs-1.20.7-17.el8.x86_64                          1/5
  Verifying        : vim-common-2:8.0.1763-16.el8.x86_64                    2/5
  Verifying        : vim-enhanced-2:8.0.1763-16.el8.x86_64                  3/5
  Verifying        : vim-filesystem-2:8.0.1763-16.el8.noarch                4/5
  Verifying        : which-2.21-16.el8.x86_64                               5/5

Installed:
  gpm-libs-1.20.7-17.el8.x86_64         vim-common-2:8.0.1763-16.el8.x86_64
  vim-enhanced-2:8.0.1763-16.el8.x86_64 vim-filesystem-2:8.0.1763-16.el8.noarch
  which-2.21-16.el8.x86_64

Complete!
Removing intermediate container 68aa97c75713
 ---> eb84bc8ae4a2
Step 7/15 : ENV MYPATH /usr/local
 ---> Running in 39a356debcae
Removing intermediate container 39a356debcae
 ---> 517215a02ce5
Step 8/15 : WORKDIR $MYPATH
 ---> Running in 2bca6fb07ceb
Removing intermediate container 2bca6fb07ceb
 ---> 4b45f65c5381
Step 9/15 : ENV JAVA_HOME /usr/local/jdk1.8.0.31
 ---> Running in 647d1fe9f9c4
Removing intermediate container 647d1fe9f9c4
 ---> b7c4090849fc
Step 10/15 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 ---> Running in cb9678d748bc
Removing intermediate container cb9678d748bc
 ---> 1d20d99b9256
Step 11/15 : ENV CATALA_HOME /usr/local/apache-tomcat-9.0.14
 ---> Running in 8b942425ef32
Removing intermediate container 8b942425ef32
 ---> c0cb87e9bf37
Step 12/15 : ENV CATALA_BASH /usr/loocal/apache-tomcat-9.0.14
 ---> Running in 277eafab3720
Removing intermediate container 277eafab3720
 ---> a76b3fe59bac
Step 13/15 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
 ---> Running in d8cbbefb8104
Removing intermediate container d8cbbefb8104
 ---> 4a7d67fb1277
Step 14/15 : EXPOSE 8080
 ---> Running in 9ab1094e962a
Removing intermediate container 9ab1094e962a
 ---> 972165d56d05
Step 15/15 : CMD /usr/local/apache-tomcat-9.0.14/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.14/bin/logs/catalina.out
 ---> Running in a2b8393438f3
Removing intermediate container a2b8393438f3
 ---> eb52972c56ea
Successfully built eb52972c56ea
Successfully tagged diytomcat:latest

在这里插入图片描述
diytomcat生成!大功告成!

四、启动自定义镜像

启动命令

docker run -d -p 9090:8080 --name mydiytomcat -v /wj/tomcat/test:/usr/local/apache-tomcat-9.0.55/webapps/test -v /wj/tomcat/logs:/usr/local/apache-tomcat-9.0.55/logs diytomcat

-p:把8080端口映射到9090端口上
–name:来个名称
-v:挂载日志,挂载webapps

[root@muyuan tomcat]# docker run -d -p 9090:8080 --name mydiytomcat -v /wj/tomcat/test:/usr/local/apache-tomcat-9.0.14/webapps/test -v /wj/tomcat/logs:/usr/local/apache-tomcat-9.0.14/logs diytomcat
a1f4814f477a7182bde283b563d878141ec2801e562713b563b6926660a7b209

这就成功了,进入容器发现直接就是我们指定的默认文件夹,这里可以发现我们打包的tomcat,jdk,还有我们的explain.txt文件,全部都在。
在这里插入图片描述
docker inspect 容器id
在这里插入图片描述
这里有几个小插曲:
1,文件路径,在dockerfile文件中 ENV CATALA_HOME /usr/local/apache-tomcat-9.0.14
ENV CATALA_BASH /usr/loocal/apache-tomcat-9.0.14这两个地方的地址出现了不匹配的情况,为什么不匹配是我自己定义的路径名和add时自动解压的路径不一致
2,日志不报错了,但是访问还是没有页面,ROOT下没页面
在这里插入图片描述
这个时候我想发布项目其实直接在本机挂载的目录下进行就完事大吉。
1,在挂载的文件夹下创建index.jsp页面和WEB_INF文件夹
在这里插入图片描述
在WEB-INF文件夹下创建web.xml文件
web.xml

<web-app id="MyStrutsApp" version="2.4"
	xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
</web-app>

index.jsp直接复制tomcat的首页页面
刷新浏览器,在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值