文档章节

使用Dockerfile制作tomcat镜像

小小怪医芙兰
 小小怪医芙兰
发布于 2016/07/12 10:52
字数 598
阅读 178
收藏 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
08/13
0
0
使用Dockerfile制作Docker镜像

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

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

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

aibinxiao
2017/11/03
0
0
使用docker容器定制镜像(image)并部署简单 web应用

概念简述 镜像 一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。 Docker镜像是一个只读的模板。比如一个镜像可以包含...

zhaokx3
2017/05/25
0
0
制作【CentOs+tomcat7+jdk8】镜像

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

王振威
07/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
今天
1
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
今天
2
0
Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
1
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
3
0
Mybatis 学习笔记四 MyBatis-Plus插件

Mybatis 学习笔记四 MyBatis-Plus插件 maven依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <ve......

晨猫
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部