文档章节

使用Dockerfile制作tomcat镜像

小小怪医芙兰
 小小怪医芙兰
发布于 2016/07/12 10:52
字数 598
阅读 315
收藏 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
博文 13
码字总数 11654
作品 0
东城
私信 提问
加载中

评论(1)

zipon
zipon
为什么把java和tomcat的压缩包传进容器就可以了??不需要进到解压??
Dockerfile简单使用实战

利用Dockerfile制作java运行环境的镜像 当前用到的环境是:   Centos 7.5   docker-ce 18.06.1-ce 1、先用centos7.5.1804的基础镜像把一些运行需要的环境装好   在/app目录下创建相对应...

IT_luo
2018/11/21
0
0
使用Dockerfile制作Docker镜像

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

linjin200
2018/08/23
15
0
Docker-制作Spring MVC工程镜像

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

statmoon
2018/08/13
0
0
11、Dockerfile实战-Tomcat

一、编写Dockerfile 具体步骤这里不再细说,直接看Dockerfile文件: FROM centos:7MAINTAINER QUNXUE ENV VERSION=8.0.46RUN yum install java-1.8.0-openjdk wget curl unzip iproute net-......

osc_yi1ow2qi
2018/12/11
4
0
centos7使用docker制作tomcat本地镜像

1、安装Docker 安装docker前请确认当前linux的内核版必须是3.10及以上 命令: uname -r 1)、yum install -y yum-utils device-mapper-persistent-data lvm2(docker的存储库中下载) 设置稳定...

osc_r0jx7t22
02/17
2
0

没有更多内容

加载失败,请刷新页面

加载更多

检查键是否存在于JavaScript对象中? - Checking if a key exists in a JavaScript object?

问题: How do I check if a particular key exists in a JavaScript object or array? 如何检查JavaScript对象或数组中是否存在特定键? If a key doesn't exist, and I try to access it, ......

fyin1314
23分钟前
17
0
jasypt-spring-boot提示Failed to bind properties

1 问题描述 在Spring Boot中使用jasypt-spring-boot进行加密,但是提示: Description:Failed to bind properties under 'spring.datasource.password' to java.lang.String: Reason:......

氷泠
今天
29
0
在git 2.13之前,只保存多个已更改的文件中的一个文件

问题: 如何在我的分支上只隐藏多个已更改文件中的一个? 解决方案: 参考一: https://stackoom.com/question/Cl3h/在git-之前-只保存多个已更改的文件中的一个文件 参考二: https://oldb...

技术盛宴
今天
30
0
SQL笔记:把Excel的数据导入MySQL中作运算

很多Excel用户都知道,Excel单个工作簿单张表存储的数据量很有限(旧版本月60多万条记录,新版本也才104万条不到),而且Excel中,因为自带各种格式与公式,兼之高度封装性等原因,导致Excel...

tengyulong
今天
15
0
Qt创建Application的文件依赖浅析

在使用QtCreator创建Application程序时,会自动创建***.ui文件,在文件夹“build-***-Desktop_Qt_***-Debug”中生成ui_***.h,***.ui可以通过QtDesigner进行调整,同时还会在***.ui的文件夹内...

qwz185_堡垒
今天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部