文档章节

使用Dockerfile制作tomcat镜像

小小怪医芙兰
 小小怪医芙兰
发布于 2016/07/12 10:52
字数 598
阅读 198
收藏 2

网上很多教程都是在线安装,但是有时在线安装虚拟机网络很不稳定,导致中途失败。所以参考一些网上教程使用本地安装。

工具:

Docker软件

ubuntu基础镜像(直接在线pull一个就好,也可以使用centos,都一样)

apache-tomcat-8.5.3.tar.gz  

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

准备:

创建一个文件夹,放入jdk,tomcat,以及Dockerfile文件。由于脚本内地址都是以Dockerfile目录的相对地址,所以为了方便我们放在同一个文件夹下。

我这里放在/usr/docker/tomcat/文件夹下。如图:

Dockerfile文件:

FROM  ubuntu:14.04
MAINTAINER    sb

#把java与tomcat添加到容器中
ADD apache-tomcat-8.5.3.tar.gz /usr/local/
ADD jdk-8u91-linux-x64.tar.gz /usr/local/
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_91
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.3
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.3
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

#容器运行时监听的端口
EXPOSE  8080
#CMD ["startup.sh", "run"]

我们不在Dockerfile之中使用CMD指令,装完后从容器中启用。

build:

docker build -t sb/tomcat .

开启容器:

docker run -i-t-p 18080:8080 sb/tomcat

进入容器之后:

./usr/local/apache-tomcat-8.5.3/bin/startup.sh

此时tomcat开启,由于我是装完后回忆写的,所以没截图。

可以将这个容器保存为镜像,供以后使用:

docker commit -m "sb's new file"  ContainerID  sb/tomcat:ubuntu_14.04

测试:

可以在宿主机上面开启浏览器,http://ip:18080

注意,这里的ip是容器的映射ip,不是宿主机的ip,可以进入容器ifconfig查看一下,我的是127.0.0.1。

几点疑问,有知道可以 解答一下:

1.有时在执行dockerfile脚本时,报出找不到tar命令,一直安装中断,但有时不会,是基础镜像关闭了相关命令还是虚拟机不稳定的原因?

2.在使用已经解压的jdk以及tomcat文件夹来直接ADD进指定目录时,会发生文件丢失的现象,如没有startup.sh没了,虽然脚本成功执行,但是镜像是无法工作的?

3.使用docker run -d ...命令开启后台容器时,docker ps无法查出容器,-a后可以查出,也就是刚创建容器就停了,是因为镜像本身就无法运行么,导致自行退出?

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
小小怪医芙兰
粉丝 0
博文 11
码字总数 9473
作品 0
东城
私信 提问
加载中

评论(1)

zipon
zipon
为什么把java和tomcat的压缩包传进容器就可以了??不需要进到解压??
Docker-制作Spring MVC工程镜像

  Spring MVC工程一般运行在Tomcat或者Jetty上,本文以Tomcat为例,那么我们首先得要有Tomcat的环境,有多种方式制作Spring MVC工程的镜像。 你可以先部署一个Tomcat镜像的容器,然后将war...

statmoon
2018/08/13
0
0
使用Dockerfile制作Docker镜像

使用Dockerfile制作Docker镜像 2017年06月03日 18:09:13 阅读数:2888 标签: docker-镜像Dockerfile 更多 个人分类: Docker 版权声明:本文为博主原创文章,未经博主允许不得转载。 https:...

linjin200
2018/08/23
0
0
Docker入门学习四之自己制作Docker镜像

一、制作自己的镜像 1.前提 Dockerfile : 用来告诉Docker,我要怎么制作我的镜像,我要制作镜像的每一个操作是什么 docker build : 该命令用来执行Dockerfile中所描述的每一件事情,最终将...

aibinxiao
2017/11/03
0
0
制作【CentOs+tomcat7+jdk8】镜像

制作 CentOs+tomcat7+jdk8 镜像 前提说明: 一般公司使用的镜像: 1、需要长期使用的,所以Dockerfile文件,要写清楚版本号,不能下载 latest 版本,不然长时间使用,可能会因为长期使用,...

王振威
2018/07/25
0
0
gradle build docker image

前言:其实gradle-docker插件干的事和我们手动制作镜像是一样的,只不过它封装了一些步骤而已、 eg:如果我们要将项目打包成镜像,首先我们要写Dockerfile,这是制作镜像的不可或缺的第一步,...

liuzhijian
2018/03/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

test

//// main.c// Test//// Created by 吕颖 on 2019/1/16.// Copyright © 2019年 carmen. All rights reserved.//#include <stdio.h>#include <stdlib.h>#include <t......

carmen-ly
今天
1
0
Android webview热门组件agentweb:4.0.2无法自适应的问题

Android webview热门组件agentweb:4.0.2无法自适应的问题 //设置自适应屏幕,两者合用mAgentWeb.getAgentWebSettings().getWebSettings().setUseWideViewPort(true); //将图片调整到适合w...

Gemini-Lin
今天
5
0
如何维护一个自己的 golang doc 服务

本文内容是如何维护一个golang 在线的doc 服务。 1 什么是godoc ? godoc 是 golang 官方提供的文档生成工具, 2 为什么要有godoc ? 我们经常遇到一个问题,就是代码和文档不一致,线上代码版...

鼎铭
今天
5
0
js中的对象创建的模式以及继承模式

对象创建模式: 工厂模式 构造函数模式 原型模式 继承模式 原型式继承 寄生式继承 构造函数 原型式和构造函数的组合式(缺点:运行两次超类类函数,积累函数的属性被挂载在原型对象上和实例对...

莫西摩西
昨天
3
0
大数据教程(11.5)仓库工具hive的实现机制

上一篇文章介绍了hadoop联邦集群的搭建过程。至此,hadoop的整个知识系统就差不多结束了。本篇博客开始,博主将分享数据仓库hive工具的原理以及使用。 一、Hive基本概念 (1)什么是Hive Hive...

em_aaron
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部