docker dockerfile构建自己的tomcat镜像
文件
1.apache-tomcat-8.5.24.tar.gz, jdk-8u151-linux-x64.tar.gz
Dockerfile文件:
FROM centos
WORKDIR /usr
COPY apache-tomcat-8.5.24.tar.gz /usr
COPY jdk-8u151-linux-x64.tar.gz /usr
RUN mkdir /usr/tomcat && mkdir /usr/jdk
RUN tar -zxvf apache-tomcat-8.5.24.tar.gz -C /usr/tomcat
WORKDIR /usr/tomcat
RUN mv apache-tomcat-8.5.24 tomcat
WORKDIR /usr
RUN tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/jdk
ENV JAVA_HOME /usr/jdk/jdk1.8.0_151
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
EXPOSE 8080
//dokcer运行时执行
ENTRYPOINT /usr/tomcat/tomcat/bin/startup.sh && tail -F /usr/tomcat/tomcat/logs/catalina.out
docker build -t zxf/tomcat .
第二种方法:
VOLUME
VOLUME ["/data"]
说明:
["/data"]可以是一个JsonArray ,也可以是多个值。所以如下几种写法都是正确的
VOLUME ["/var/log/"]
VOLUME /var/log
VOLUME /var/log /var/db
一般的使用场景为需要持久化存储数据时
容器使用的是AUFS,这种文件系统不能持久化数据,当容器关闭后,所有的更改都会丢失。
所以当数据需要持久化时用这个命令。
docker commit 容器名称 新的镜像名称
docker dockerfile构建自己的tomcat镜像的更多相关文章
- 构建自己的Tomcat镜像
在很多情况下,我们会不满足于官方提供的Tomcat镜像.比如官方镜像的时区为UTC时间,并不是北京时间:再比如在特定硬件环境下,jdk的随机数生成器初始化过慢问题.此时,我们就会考虑构建自己的Tomc ...
- Docker | dockerfile构建centos镜像,以及CMD和ENTRYPOINT的区别
构建自己的centos镜像 docker pull centos下载下来的镜像都是基础版本,缺少很多常用的命令功能,比如:ll.vim等等, 下面介绍制作一个功能较全的自己的centos镜像. 步骤 ...
- docker初次体验-管理MySQL+tomcat镜像
引言 平时经常用linux,我没少吃苦后悔linux没好好研究研究.装一些软件配一些环境时很是害怕,多亏有了docker.docker是一个应用容器引擎,可以管理很多的软件镜像,这些镜像被官方放在了d ...
- Docker自学纪实(五) 使用Dockerfile构建php网站环境镜像
一般呢,docker构建镜像容器的方式有两种:一种是pull dockerhub仓库里面的镜像,一种是使用Dockerfile自定义构建镜像. 很多时候,公司要求的镜像并不一定符合dockerhub仓 ...
- Docker使用Dockerfile构建Asp.Net Core镜像
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base WORKDIR /app EXPOSE 80 FROM microsoft/dotnet:2. ...
- OpenShift应用镜像构建(1) S2I tomcat 镜像定制
参考并感谢https://www.jianshu.com/p/fd3e62263046 在对接项目制作应用镜像的过程中,经常发现避免不了的是需要写Dockerfile,(当然另外一种方式是直接run一 ...
- docker制作共享jdk的tomcat镜像
FROM centos:7.4.1708 #挂载宿主机jdk到容器,节省空间 MAINTAINER huqiang:2018/10/12 ENV VERSION=8.5.34 ENV CATALINA ...
- docker通过dockerfile构建JDK最小镜像,Docker导出导入镜像
docker通过dockerfile构建JDK最小镜像,Docker导出导入镜像 一.docker通过dockerfile构建JDK最小镜像 1.1 下载JRE 1.2 解压JRE,删除相关不需要文件 ...
- 官方Tomcat镜像Dockerfile分析及镜像使用
官方Tomcat镜像 地址:https://hub.docker.com/_/tomcat/ 镜像的Full Description中,我们可以得到许多信息,这里简单介绍下: Supported ta ...
随机推荐
- C++函数调用时的参数传递-3中传递方式
参数传递即实参向形参传递信息,使形参获得对应的存储空间及初值,C++中函数传递主要有3种方式: 1.按值传递. 以按值传递方式进行参数传递的过程为:首先计算出实参的值,然后给它所对应的形参变量分配存储 ...
- javascript 完美解决对联广告
javascript 完美解决对联广告 // function couplet(){ if(arguments.length>=1) this.objID = document.getEleme ...
- json转实体,json转List实体,json转泛型实体
1.========================= https://segmentfault.com/a/1190000009523164 package com.thunisoft.maybee ...
- 判断Json字符串返回类型 对象 或者 数组
public enum JSON_TYPE { /** * JSONObject */ JSON_TYPE_OBJECT, /** * JSONArray */ JSON_TYPE_ARRAY, /* ...
- 【转】nGrinder 简易使用教程
https://www.cnblogs.com/jwentest/p/7136727.html 背景 性能压测工具之前使用的是jmeter,这次说的是nGrinder,先直接搬运两者之间的比较 比较点 ...
- [kafka] 002_kafka_相关术语详细解析
参考: http://www.cnblogs.com/likehua/p/3999538.html http://kafka.apache.org/documentation.html#getting ...
- C++复合类型(结构体)
其实c++的结构体可以理解为类似于python的字典,我个人理解, 但有区别 先看结构 #include <iostream> 关键字 标记成为新类型的名称 struct inflatab ...
- Android notifyDataSetChanged
notifyDataSetChanged()用于动态的更新ListView中的数据.最后还是会调用Adapter中的getView函数. notifyDataSetChanged()相比于setAda ...
- Eclipse JUnit简单示例
在本节中,我们将看到一个简单的JUnit例子. 先创建一个工程,名称为:CalculateTest,并在这个工程上点击右键,选择:Build Path -> Add Library -> ...
- Python bytes decode() 方法
描述 bytes decode() 方法以指定的编码格式解码 bytes 对象,默认编码为 'utf-8'. 对应的编码方法:encode() 方法 . 语法 Python bytes decode( ...