一、准备工作

1、下载安装docker

2、下载tomcat压缩包

(1)我这里是下载的apache-tomcat-9.0.8.tar.gz

下载地址
https://tomcat.apache.org/download-90.cgi

如图

(2)通过命令解压,得到的解压包,并改名为tomcat9 

tar -xzvf apache-tomcat-9.0.8.tar.gz
mv apache-tomcat-9.0.8 tomcat9

3、下载jdk压缩包

(1)下载jdk-8u131-linux-x64.tar.gz

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

(2)通过命令解压,并改没那个为jdk18

tar -xzvf jdk-8u131-linux-x64.tar.gz
mv jdk-8u131-linux-x64 jdk18

二、部署流程

1、第一种方式

 将系统centos作为基础镜像,tomcat和jdk等依赖环境需要的文件复制到容器对应的路径下,即可使用,添加环境变量并暴露8082端口

(1)编辑Dockerfile

#使用的基础镜像
FROM centos
#创建目录
RUN mkdir -p /docker_home/local
#把当前目录下的jdk文件夹添加到镜像
ADD tomcat9 /docker_home/local/tomcat9
ADD jdk18 /docker_home/local/jdk18
ENV JAVA_HOME /docker_home/local/jdk18/
ENV CATALINA_HOME /docker_home/local/tomcat9
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
#暴露8082端口
EXPOSE 8082
#启动时运行tomcat
CMD ["/docker_home/local/tomcat9/bin/catalina.sh","run"]

(2)构建镜像

docker build -t centos -f Dockerfile ./

(3)启动容器

docker run -d -p 8082:8082 --name=tomcat9 centos

2、第二种方式

直接使用tomcat公共镜像作为基础镜像

(1)编辑Dockerfile

#使用的基础镜像
FROM tomcat:8.5
#启动时运行tomcat
CMD ["catalina.sh", "run"]
#设置启动命令
#ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]

(2)构建镜像

docker build -t tomcat:8.5 -f Dockerfile ./

(3)启动镜像

docker run -d -p 8080:8080 --name=tomcat2 tomcat:8.5

五、使用IP:PORT浏览器访问

使用Dockerfile部署TOMCAT的更多相关文章

  1. dockerfile部署tomcat+jdk

    FROM centos: MAINTAINER www.ctnrs.com ENV VERSION= RUN yum install wget curl unzip iproute net-tools ...

  2. 如何使用Dockerfile构建Tomcat镜像并部署war

    我们都知道Docker构建一个镜像有两种方式: 使用`docker commit`命令 使用`Dockerfile`文件和`docker build`命令 那么这两种方式有何区别呢? 相同点:底层实现 ...

  3. Docker容器部署tomcat出现中文乱码

    docker 容器部署tomcat后,日志文件中出现中文乱码,很多问号,中文的文件夹也是问好.先看看容器的locale: [root@docker1 ~]# docker exec -it 41de9 ...

  4. 利用Dockerfile部署SpringBoot项目

    利用Dockerfile部署SpringBoot项目 1.创建一个SpringBooot项目并且打成jar包 2.在Linux中创建一个文件夹,来做docker测试 [root@izwz90lvzs7 ...

  5. 如果在docker中部署tomcat,并且部署java应用程序

    1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创 ...

  6. Docker学习笔记_10 docker应用 - 部署TOMCAT服务

    选择基镜像 基镜像使用dokcer hub官方提供的tomcat8 alpine当前最新版本,https://hub.docker.com/_/tomcat/ docker pull tomcat:8 ...

  7. dockerfile构建Tomcat镜像

    dockerfile构建Tomcat镜像 一.镜像分层概念 二.制作tomcat镜像 2.1.创建分层目录 [root@node2 ~]# mkdir /app/{web/{nginx,tomcat, ...

  8. 3-linux下部署tomcat应用

    linux下部署tomcat应用 相关软件下载 jdk      http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downlo ...

  9. 关于前期在云服务器上部署TOMCAT服务器的问题

    如果你要将你的项目放在服务器上(针对云服务器),首先你必须要学会前期部署Tomcat的准备, 第一步:安装jdk,配置环境变量 这个比较简单,配置java环境变量最为简单的方法是将java的 (../ ...

随机推荐

  1. Flutter第三方選擇器組件

    调用Flutter的第三方时间选择器组件 上面我介绍了系统给我们提供的日期时间选择器,但是有时候系统提供的选择器并不符合我们的要求,这时我们就可以到pub.dev上去寻找符合我们要求的日期选择器. 这 ...

  2. Java管道流学习

    管道流 作用:用于线程之间的数据通信 管道流测试:一个线程写入,一个线程读取 import java.io.IOException; import java.io.PipedInputStream; ...

  3. python 的文件编码处理

    python的文件编码处理有点粗鲁 1.不管文件原来是编码类型,读入后都转换成Unicode的编码 2.写入文件时,write函数把变量以读入文件的编码方式写入(根据open(path,mode,en ...

  4. CentOS7 安装xen(在虚拟机上成功,实体机测试死机!)

    此文章只做操作记录,其中有些地方可能漏了!!我只贴出自己的操作过程!其它有差别的地方请自己网上查找参考! 只有在全虚拟化下才能安装Windows,这就需要有硬件支持,并在BIOS中开启Virtuali ...

  5. 51nod 1040:最大公约数之和(数论)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. ...

  6. FMXUI ANDROID下连续按多次返回出现异常

    在ANDROID下,按返回键后,默认是关闭当前Frame,但连接按返回键,会对当前Frame执行多次关闭动作,​​因为已经释放过对象,再次关闭会出现异常错误,​解决办法:定义一个标识如FClosed: ...

  7. 单词计数-MapReduceJob

    pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3. ...

  8. c#消息窗体

    C#模拟弹出窗体系统菜单介绍 using System.Runtime.InteropServices; ; ; ; ; ; ; const uint TPM_VCENTERALIGN = 0x10; ...

  9. LOJ 3090 「BJOI2019」勘破神机——斯特林数+递推式求通项+扩域

    题目:https://loj.ac/problem/3090 题解:https://www.luogu.org/blog/rqy/solution-p5320 1.用斯特林数把下降幂化为普通的幂次求和 ...

  10. LintCode之回文数

    题目描述: 我的代码: public class Solution { /* * @param num: a positive number * @return: true if it's a pal ...