irpas技术客

Docker学习笔记(七)自定义tomcat镜像_养只狗名叫猫

大大的周 1423

一、准备工作

在宿主机上创建一个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://·/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> </web-app>

index.jsp直接复制tomcat的首页页面 刷新浏览器,


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #p #1111 #R