第八章 实战:构建Tomcat镜像及发布

目录

一、准备开发环境包

二、编写DockerFile文件

三、构建镜像

四、运行镜像

五、访问镜像

六、发布镜像到DockerHub


一、准备开发环境包

准备镜像文件所需的Tomcat压缩包和JDK压缩包,readme.txt里的内容随便写。

二、编写DockerFile文件

bash 复制代码
FROM centos
MAINTAINER wangzhexiao

COPY readme.txt /home/wzx/app/

ADD jdk-8u421-linux-x64.tar.gz /home/wzx/app/
ADD apache-tomcat-9.0.95.tar.gz /home/wzx/app/

RUN yum -y install vim

ENV WORKPATH /home/wzx/app
WORKDIR $WORKPATH

ENV JAVA_HOME /home/wzx/app/jdk1.8.0_421
ENV CATALINA_HOME /home/wzx/app/apache-tomcat-9.0.95
ENV CATALINA_BASH /home/wzx/app/apache-tomcat-9.0.95
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

EXPOSE 8080

CMD /home/wzx/app/apache-tomcat-9.0.95/bin/startup.sh && tail -F /home/wzx/app/apache-tomcat-9.0.95/bin/logs/catalina.out

三、构建镜像

bash 复制代码
docker build -f dockfile -t mytomcat:1.0 .

四、运行镜像

bash 复制代码
docker run -d -p 3386:8080 --name wzx-tomcat -v /home/wzx/tomcat/test:/home/wzx/app/apache-tomcat-9.0.22/webapps/test -v /home/wzx/tomcat/testlogs/:/home/wzx/apache-tomcat-9.0.22/logs mytomcat:1.0

五、访问镜像

我们在宿主机挂载目录/home/wzx/tomcat/test下分别创建目录及文件:

index.jsp

WEB-INF/web.xml

web.xml里的代码如下:

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app
    version="4.0"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xml="http://www.w3.org/XML/1998/namespace"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">
  
</web-app>

index.jsp代码如下:

html 复制代码
Hello World!

如下图所示,访问成功 。我们本章通过tomcat服务器运行JavaWeb程序的镜像就此构建运行成功。

六、发布镜像到DockerHub

  1. 地址 https://hub.docker.com/ 注册自己的账号!

  2. 已有账号的确定账号密码可以登录

  3. 在本地服务器提交自己的镜像

登录后push自己本地镜像即可

bash 复制代码
docker push 镜像:版本
相关推荐
ly76891 分钟前
生产环境 Spring Boot 应用内存泄漏排查实战
java·spring boot·spring·内存泄漏·threadlocal·gc日志·堆转储
IT小白杨13 分钟前
eBay多账号如何应对关联判定:主体、收款、IP、环境四层配置清单一次讲清
java·网络·网络协议·tcp/ip·自动化·指纹浏览器
無a伟1 小时前
RabbitMq高级特性:TTL,死信队列,延迟队列
java·分布式·rabbitmq
自律最差的编程狗1 小时前
Ubuntu下Docker部署Ollama 轻量模型
linux·ubuntu·docker
长谷深风1111 小时前
Agent 跑了 30 分钟宕机,如何从断点继续?
java·大数据·人工智能·ai·大模型·memory·aiagent
慧都小妮子1 小时前
DevExpress Java 文档处理 API 免费 CTP:PDF、PowerPoint、条码与跨平台部署
java·pdf·powerpoint·devexpress·文档处理·条码生成
泡海椒1 小时前
告别反射低效:JQuick-Java ASM动态调用链性能优化实战
java·python·性能优化
土司大王1 小时前
LeetCode 17 电话号码的字母组合:Java 回溯模板、多叉决策树与复杂度分析
java·leetcode·决策树
CoderYanger2 小时前
前端基础——JavaScript(WebAPI)代码案例
java·开发语言·前端·javascript·css·前端框架·html5
wdfk_prog2 小时前
大型 Docker 镜像导出导入工程化:可靠性、磁盘与压缩
运维·docker·容器