服务器环境建好以后,如果要扩展,只需要执行(详细命令到下文中找)
docker run .....
发完版本需要重启服务,执行(详细命令到下文中找)
docker restart [容器的ID]

将文件传到 tomcat 下,可参考  Docker cp 将宿主机上的文件复制到容器中


准备文件

apache-tomcat-9.0.31.tar.gz

jdk-8u191-linux-x64.tar.gz


CentOS上安装Docker。

1.检查内核版本,返回的值大于3.10即可。、
$ uname -r

安装 Docker

yum -y install docker


将tomcat 、jdk 传到 /usr/local/docker目录中

在java、jdk同级目录下,创建 Dockerfile 文件,文件名不能错,否则后面 build 会检测不到

[root@localhost ~]# cd /usr/local/docker/

[root@localhost docker]# touch Dockerfile

Dockerfile 文件内容如下

FROM         centos
MAINTAINER ChenJun
#把java与tomcat添加到容器中
ADD ./jdk-8u191-linux-x64.tar.gz /usr/local/
ADD ./apache-tomcat-9.0.31.tar.gz /usr/local/
#安装vim编辑器
RUN yum -y install vim
#设置工作访问时候的WORKDIR路径,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_191
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.31
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.31
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE 8080
#启动时运行tomcat
# ENTRYPOINT ["/usr/local/apache-tomcat-9.0.31/bin/startup.sh" ]
# CMD ["/usr/local/apache-tomcat-9.0.31/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-9.0.31/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.31/bin/logs/catalina.out

构建

#点表示当前目录 ,也可以直接指定  docker build -t tomcat9 /usr/local/docker

[root@localhost docker]# docker build -t tomcat9 . 

如果显示超时,可以重启一下 systemctl restart docker

构建成功后,如处图 

启动docker 加上 webapp、logs目录映射

[root@localhost web]# docker run -d -p 9091:8080 --name tomcat9091 -v /opt/web/tomcat9091/webapps:/usr/local/apache-tomcat-9.0.31/webapps -v /opt/web/tomcat9091/logs/:/usr/local/apache-tomcat-9.0.31/logs --privileged=true tomcat9

[root@localhost web]# docker run -d -p 9092:8080 --name tomcat9092 -v /opt/web/tomcat9092/webapps:/usr/local/apache-tomcat-9.0.31/webapps -v /opt/web/tomcat9092/logs/:/usr/local/apache-tomcat-9.0.31/logs --privileged=true tomcat9

创建映射后,会自动的在 宿主机上建立相应的目录(tomcat webapps下面原有的目录不会映射过来,不知道为什么,通过 docker exec ... 进去看的时候,容器webapps里面也没有文件)

测试Tomcat

建个测试的war包

war 包上传到 9091下面,如果不加 test是不会显示的。默认带小猫的页面,不在本地的 webapps下面

有时候war包放上去,需要重新服务。这时候可以用命令重启

docker restart [容器的ID]

查看容器中的内容

[root@localhost docker]# docker exec 07de30dd6e3c ls -l

Docker 下自定义安装 Tomcat的更多相关文章

  1. redis第一讲【redis的描述,linux和docker下的安装使用】

    Redis(REmote DIctionary Server):是什么 redis(远程字典服务器),是完全开源免费的,高性能的k/v分布式内存数据,热门的Nosql数据库 Redis可以干什么: 内 ...

  2. Linux 系统下在线安装 Tomcat

    在linux下部署java开发的web应用,一般采用Tomact+jre环境(可不需要apache),在RHEL和CentOS下,可以采用yum在线自动安装方式安装,具体操作如下: 1.基础环境安装配 ...

  3. Windows下怎样安装Tomcat

    Tomcat 是开源的WEB应用容器,所以受到各位程序员和公司的亲赖.在这里给大家介绍一下如何在Windows环境下安装Tomcat绿色版本,希望能够对大家有帮助. 1.首先去Tomcat官网下载To ...

  4. Docker 下开发安装hyperf

    Docker 下开发hyperf # 下载并运行 hyperf/hyperf 镜像,并将镜像内的项目目录绑定到宿主机的 /tmp/skeleton 目录 docker run -v /tmp/skel ...

  5. docker学习5-docker安装tomcat环境和部署war包

    前言 tomcat部署web项目非常方便,把war包放到webapps目录就可以了.本篇使用docker快速搭建一个tomcat环境 下载tomcat镜像 拉取官方最新版tomcat镜像 [root@ ...

  6. Windows下 webstorm安装tomcat配置svn并使用

    先附上所需要的软件的下载地址:https://pan.baidu.com/s/1c2ripd2 1.下载并安装jdk以及配置jdk的环境变量 1)下载jdk,选择安装目录安装,我选择的是默认路径,安装 ...

  7. MySQL 在Docker下快速安装(Ubuntu 16.4)

    采用dockerhub安装 docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/my ...

  8. centos/linux下的安装Tomcat

    1.启动tomcat时候需要JDK依赖 如果没有安装的请移步到该链接Centos/linux下的JDK安装 2.从官网上下载tomcat压缩包 wget -c http://apache.fayea. ...

  9. docker下centos安装ping命令

    https://blog.csdn.net/king_gun/article/details/78423115 [问题] 从docker hub上拉取到则镜像centos:6.7在执行ping命令是报 ...

  10. fedora下eclipse安装tomcat插件

    首先下载tomcat插件: http://www.eclipsetotale.com/tomcatPlugin.html,下载最新的3.3版本: 由于我的eclipse是通过yum自动安装的,因此ec ...

随机推荐

  1. [Python急救站]密码判断

    用Python做一个密码判断,用户输入注册密码,需要6位以上,包含数字.大写字母.小写字母. import re a = re.compile('[a-z]') b = re.compile('[A- ...

  2. Spring5学习随笔-Spring5的基本介绍、工厂设计模式

    学习视频:[孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索.学不会Spring?只因你未遇见孙哥] Spring系列-工厂 第一章.引言 Spring I ...

  3. 论文精读:用于少样本目标检测的元调整损失函数和数据增强(Meta-tuning Loss Functions and Data Augmentation for Few-shot Object Detection)

    论文链接:Meta-Tuning Loss Functions and Data Augmentation for Few-Shot Object Detection Abstract 现阶段的少样本 ...

  4. 归并排序(merge_sort)

    算法时间复杂度:妥妥的nlogn 步骤: 1.确定分界点 mid = (l+r) >> 1 2.递归排序左右两边 3.归并--合二为一(用两个指针,分别指向两个序列) 就是递归到最底部,然 ...

  5. Node01-简介与安装

    01. Node.js是什么? pNode.js是一个基于V8 JavaScript引擎的JavaScript运行时环境. 也就是说: Node.js基于V8引擎来执行JavaScript的代码. V ...

  6. Codeforces Round 894 (Div. 3)

    Codeforces Round 894 (Div. 3) A. Gift Carpet 题意:判断一列一个字母有没有"vika" 思路:挨个枚举每一列 #include<b ...

  7. 吉特日化MES & SQL Server 无法执行数据库脚本

    打开服务器打算远程执行一下脚本,突发发现数据库无法执行脚本,就想着是不是安装了 海康AGV 控制系统的问题导致,问题如下: 问题截图如下: 报错信息如下: ====================== ...

  8. [NOI online2022普及A] 王国比赛

    题目描述 智慧之王 Kri 统治着一座王国. 这天 Kri 决定举行一场比赛,来检验自己大臣的智慧. 比赛由 \(n\) 道判断题组成,有 \(m\) 位大臣参加.现在你已经知道了所有大臣的答题情况, ...

  9. K8S核心技术

    一.命令行工具Kubectl kubectl 是 Kubernetes 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能 够在集群上进行容器化应用的安装部署 1.基本语法 kube ...

  10. MapStruct使用

    1.首先创建一个maven项目 2.导入相关的依赖 注意:lombok的版本 <?xml version="1.0" encoding="UTF-8"?& ...