一、说明

centos基于docker官方镜像来制作的,用tomcat源码包生成的镜像,本环境中tomcat安装目录位于:/usr/local/,jdk安装目录位于:/usr/,如果你使用dockerfile buid此镜像,你要提前下载好jdk、tomcat源码包,在此文本中用的版本为apache-tomcat-8.0.24、jdk1.8.0_131,并且还配置了服务器的时间区,里面#号为注释掉的内容可以不用管它。

二、Dockerfile

FROM centos:latest

MAINTAINER ganbing87@126.com

ENV TIME_ZONE Asia/Shanghai

ENV JAVA_HOME /usr/jdk1.8.0_131/

ENV PATH $PATH:$JAVA_HOME/bin

ENV TOMCAT_HOME /usr/local/apache-tomcat-8.0.24/

COPY ./apache-tomcat-8.0.24.tar.gz /usr/src

COPY ./jdk-8u131-linux-x64.tar.gz /usr/src

RUN set -x \

\

&& yum -y update \

&& tar zxf /usr/src/apache-tomcat-8.0.24.tar.gz -C /usr/local \

&& rm -rf /usr/src/apache-tomcat-8.0.24.tar.gz \

&& tar zxf /usr/src/jdk-8u131-linux-x64.tar.gz -C /usr \

&& rm -rf /usr/src/jdk-8u131-linux-x64.tar.gz \

&& echo "${TIME_ZONE}" > /etc/timezone \

&& ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime

COPY ./shutdown.sh /usr/local/apache-tomcat-8.0.24/bin

#ADD run.sh /run.sh

#RUN chmod +x /run.sh

ENTRYPOINT /usr/local/apache-tomcat-8.0.24/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.0.24/logs/catalina.out

#CMD ["/run.sh"]

EXPOSE 8080

~

三、附件(shutdown.sh)

#!/bin/bash

ps -ef |grep /usr/local/apache-tomcat-8.0.24 |grep -v grep |awk '{print $2}' |xargs kill -9

四、运行容器

1、环境:

centos7.2+tomcat8.0.24+jdk1.8.0

2、用dockerfile构建tomcat镜像

docker build -t tomcat:8.0.24 .

3、查看镜像是否构建成功

docker images

4、运行

docker run -d -p 8080:8080 tomcat:8.0.24 bash

-d:后台启动,并生成容器id

-p:映射主机的8080端口至tomcat容器的8080端口

5、测试:

用浏览器访问docker主机的IP地址,要注意不是容器的IP地址,比如主机IP为172.16.0.1,http://172.16.0.1:8080

本文转自甘兵 51CTO博客,原文链接:http://blog.51cto.com/ganbing/2049279,如需转载请自行联系原作者

dockerfile用源码包构建tomcat服务相关推荐

  1. linux apache压缩包安装目录,源码包安装Apache服务

    1.安装development tools程序包组 安装Apache服务器前需要解决依赖性问题,比如需要安装GCC.GCC++.OPENSSL等等,因为是在虚拟机里做实验,这里就通过直接安装包组的方法 ...

  2. 源码包部署tomcat

    JAVA 在openjdk下载 jre----痩身版的-------jdk java的容器----->tomcat,websphere(银行用的多),Jboss(12306),weblogic ...

  3. liunx服务(Nginx服务器 web服务器源码包和rpm 服务平滑升级)

    Nginx服务器 和apache服务器是同样的功能都是发布网页web的但是不同的是功能上有些不同各有各的好处. Nginx服务器 开始安装 确认包安装 yum install pcre-devel o ...

  4. Linux系统中软件的“四”种安装原理详解:源码包安装、RPM二进制安装、YUM在线安装、脚本安装包...

    一.Linux软件包分类 1.1 源码包 优点: 开源,如果有足够的能力,可以修改源代码: 可以自由选择所需的功能: 软件是编译安装,所以更加适合自己的系统,更加稳定.效率更高: 卸载方便: 缺点: ...

  5. Linux软件安装管理 - CentOS (三) ---- 源码包管理

    1. 软件包管理简介 2. rpm命令管理(Redhat Package Manager) 3. yum在线安装 4. 源码包管理 4.1 源码包和RPM包的区别 4.1.1 区别 安装前:概念上的区 ...

  6. 软件包管理:源码包管理-源码包与RPM包的区别

    RPM会安装在默认位置,源码包会安装在指定位置. 绝大多数ROM包遵循此规范.写软件包是就固定好了. 主要影响体现在对服务的管理方法,服务的管理分三种:启动,重启动,停止. 启动时使用绝对路径来启动. ...

  7. linux源码包与RPM包的区别

    linux源码包与RPM包的区别 1.区别 .安装之前的区别:概念上的区别 比如说:源码包是开源的,比RPM包安装更自由,但是它安装更慢,更容易报错:RPM包是经过编译的,不能看到源代码,但是它安装更 ...

  8. Linux软件包管理之源码包、脚本安装包

    目录 1.源码包和RPM包的区别 RPM包和源码包默认安装位置: 由于安装位置不同带来的影响 2.源码包安装 ①.安装准备 ②.安装注意事项 ③.安装源码包 3.源码包卸载 4.脚本安装包 5.总结 ...

  9. Linux软件管理包-源码包与rmp包区别,及其安装与卸载

    一. rpm包与源码包的区别 安装前:概念上的区别,源码包是开源的,比RPM包安装更自由,但是它安装更慢,更容易报错:RPM包是经过编译的,不能看到源代码,但是它安装更快,报错更容易解决,只有依赖性问 ...

最新文章

  1. TCP/IP协议的编写《转载》
  2. 性能调优工具类TimeStone
  3. Exchange 2013 OWA重定向
  4. 关于struts2在页面请求转发到action的问题
  5. macbook怎么改编码_如何设置新的MacBook进行编码
  6. 网络之NSURLConnection
  7. python面试题及答案 2019-这些2019年常考的Python面试题你都能答上来吗?
  8. java day17 【线程、同步】
  9. 如何在Excel/Word中使用复选框
  10. 关于Ajax跨域的解决方案
  11. Linux下vi命令编辑器怎样编辑,怎样保存退出
  12. YOLO系列算法原理介绍
  13. singleSpa记录
  14. 您即将提交的信息不安全
  15. kafka计算机专业读法_计算机专业有哪些行之有效的学习方法?
  16. mysql的一些基本常识(约束 、事务,事务隔离级别)
  17. vcpkg+opencv4(sfm+vtk)+openMVS+SFM算法-github代下载(http://gitd.cc/)
  18. spring源码分析之BeanDefinition相关
  19. 2.5D的ACT类型游戏碰撞检测
  20. Zadig, 极客的浪漫

热门文章

  1. angularJS的controller之间如何正确的通信
  2. iPad 3将获得Retina视网膜显示技术
  3. tank html5,index.html
  4. 雷达多普勒频率计算公式_非接触式雷达在线测流系统是由什么组成的?
  5. POJ2553 强连通出度为0的应用
  6. 【EventBus】发布-订阅模式 ( EventBus 组成模块 | 观察者模式 )
  7. 【Binder 机制】AIDL 分析 ( 创建 AIDL 文件 | 创建 Parcelable 类 | AIDL 中使用 Parcelable 类 | 编译工程生成 AIDL 对应的Java源文件 )
  8. 【MATLAB】变量 ( 变量引入 | 变量类型 )
  9. 【面向对象设计模式】 接口型模式 (一)
  10. leetcode(78)子集