如何使用Dockerfile构建Tomcat镜像并部署war
我们都知道Docker构建一个镜像有两种方式:
使用`docker commit`命令
使用`Dockerfile`文件和`docker build`命令
那么这两种方式有何区别呢?
相同点:底层实现上一样,最终都是通过`docker commit`生成镜像;
不同点:通过`Dockerfile`生成镜像,能够实现镜像文档化,使得镜像可读且易维护;
通过`docker build`生成镜像则相反,不能实现镜像文档化。
所以这篇文章采用Dockerfile来构建 :D
0x02准备工作
创建目录
$ mkdir tomcat && cd tomcat # 创建一个目录来存放所需文件
$ touch Dockerfile && vi Dockerfile # 编写Dockefile
Dockerfile (Tomcat其他版本)
FROM tomcat:7-jre7 # tomcat7 + jre 7
MAINTAINER "errorlife <steffan.fan@foxmail.com>" # 维护者
CMD ["catalina.sh", "run"] #启动tomcat shell执行程序
0x03 构建镜像
构建镜像
$ sudo docker build -t errorlife/tomcat .
# "-t",--tag,为当前镜像命名:errorlife/tomcat
# ".", 指代当前目录
运行镜像
$ sudo docker run -d -p 8080:8080 errorlife/tomcat
# -d,--detach=false 指定容器运行于前台还是后台(-d即后台)
# "-p",--port,指定宿主机的8080端口绑定到镜像暴露的8080端口
运行结果
你可以使用
curl
命令确定是否正确部署成功$ curl http://docker.steffan.cn:8080/
使用浏览器访问http://ip:8080/
当你见到熟悉的汤姆猫的时候,就证明你构建成功了。
部署war包
- 将war包上传到与
Dockerfile
文件同一目录(即tomcat)
我使用的是WinSCP,个人觉得好用到不行=。= 重新编写Dockerfile:
$ vi Dockerfile
Dockerfile:
FROM tomcat:7-jre7
MAINTAINER "errorlife <steffan.fan@foxmail.com>"
ADD dockertest.war /usr/local/tomcat/webapps/ #将war包添加进webapps中
CMD ["catalina.sh", "run"] #启动tomcat shell执行程序运行结果
0x04 其他配置文件
应用场景
由于一些项目需要修改tomcat的context.xml
,setting.xml
,tomcat-user.xml
等,还有一些tomcat的lib包
,甚至是添加一些独有的授权文件
,那么也应该在dockerfile
中add
进去,而不是直接放到Linux
的文件管理系统中。
Show一下我的Dockerfile
FROM tomcat:7-jre7
MAINTAINER "errorlife <steffan.fan@foxmail.com>" ADD settings.xml /usr/local/tomcat/conf/
ADD tomcat-users.xml /usr/local/tomcat/conf/
ADD config/license.xml ADD classes12.jar /usr/local/tomcat/lib
ADD ojdbc6.jar /usr/local/tomcat/lib
ADD oracle-jdbc-10.2.jar /usr/local/tomcat/lib
ADD context.xml /usr/local/tomcat/conf/
ADD xxx.war /usr/local/tomcat/webapps/
CMD ["catalina.sh", "run"]
如何使用Dockerfile构建Tomcat镜像并部署war的更多相关文章
- dockerfile构建Tomcat镜像
dockerfile构建Tomcat镜像 一.镜像分层概念 二.制作tomcat镜像 2.1.创建分层目录 [root@node2 ~]# mkdir /app/{web/{nginx,tomcat, ...
- Docker 使用Dockerfile构建tomcat镜像
Dockerfile概念: 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么之前提及的无法重复的问题. ...
- 以tomcat镜像为基础部署war包后再做成镜像
#以交互的方式启动本地的镜像tomcat:hps,并且将本地目录/mnt/iso挂在到容器中的/tmp/repositories目录,方便从本地获取一些安装文件并进行一些操作 docker run - ...
- 用Docker构建Tomcat镜像
构建tomcat镜像 创建工作目录 [root@elk-node2 tomcat]# mkdir tomcat [root@elk-node2 tomcat]# cd tomcat [root@elk ...
- Dockerfile构建私有镜像
构建第一个镜像 镜像的定制实际上就是定制每一层所添加的配置,文件.我们可以把每一层修改,安装,构建,操作的命令都写入一个脚本,这个脚本就是Dockerfile.Dockerfile是一个文本文件,其内 ...
- Docker 02 - 向 Docker 的 Tomcat 镜像中部署 Web 应用
目录 1 下载 Docker 镜像 2 部署Web项目 2.1 通过Dockerfile自定义项目镜像 2.2 启动自定义镜像, 生成一个容器 2.3 另一种启动方式: 交互式启动 3 (附) 向镜像 ...
- Dockerfile构建jar镜像
dockerDockerfilejar包docker-compose 一.安装docker和compose 二.准备jar包 三.编写配置文件 1. Dockerfile 2. docker-comp ...
- Docker学习(六)Dockerfile构建自定义镜像
Docker学习(六)Dockerfile构建自定义镜像 前言 通过前面一篇文章可以知道怎么去使用一个镜像搭建服务,但是,如何构造自己的一个镜像呢,docker提供了dockerfile可以让我们自己 ...
- 基于Dockerfile制作tomcat镜像
Docker 概述: 在前面的例子中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一种文件或脚本,我们把想执行的操 ...
随机推荐
- jsp中简易版本的图片上传程序
1.下载相应的组件的最新版本 Commons FileUpload 可以在http://jakarta.apache.org/commons/fileupload/下载 附加的Commons IO ...
- jquery、js获取table,遍历输出tr中各个td的内容。
首先,依赖jquery.. $('#btntb').click(function(){ $('#tab tr').each(function(i){ // 遍历 tr $(this).children ...
- mysqldump与source
mysqldump示例 mysqldump --default-character-set=utf8 -d --opt -hlocalhost -uroot -p123456 --where=&quo ...
- 【转载】如果快速开发APP&创业
先贴原文所在个人博客: http://uikoo9.com/ 今天看了一些这个人的文章,还是有一定见解的,比如下面这篇 <如何快速开发出一个高质量的APP——创业谈> http://uik ...
- 第六章 字节码执行方式--解释执行和JIT
注:主要参考自<分布式java应用:基础与实践><深入理解Java虚拟机(第二版)> 1.两种执行方式: 解释执行(运行期解释字节码并执行) 强制使用该模式:-Xint 编译为 ...
- 深入理解模型,视图和控制器(C#)
这篇文章向你提供ASP.NET MVC 模型,视图和控制的高度概览.换句话说,解释一下ASP.NET MVC中的 ‘M’, ‘V’, 和 ‘C’. 看完这篇文章以后,你应该就能理解ASP.NET MV ...
- C# 音频操作系统项目总结
此项目需求是针对.wav格式音频进行操作,转换成相应的.mp3格式的音频文件,对音频进行切割,最后以需求的形式输出,此篇会回顾运用到的一些知识点. 1.MDI子窗口的建立: 首先一个窗体能够创建多个M ...
- C# 实现的异步 Socket 服务器
介绍 我最近需要为一个.net项目准备一个内部线程通信机制. 项目有多个使用ASP.NET,Windows 表单和控制台应用程序的服务器和客户端构成. 考虑到实现的可能性,我下定决心要使用原生的soc ...
- 详解Spring Boot集成MyBatis的开发流程
MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集. spring Boot是能支持快速创建Spring应用的Java框 ...
- 解决在ubuntu 12.10安装vmware-tools实现文件共享问题
解决在ubuntu 12.10安装vmware-tools出现的“The path "" is not a valid path to linux-headers-3.5.0-17 ...