汤姆猫服务器war作用,如何使用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 " # 维护者

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/

当你见到熟悉的汤姆猫的时候,就证明你构建成功了。

部署war包

将war包上传到与Dockerfile文件同一目录(即tomcat)

我使用的是WinSCP,个人觉得好用到不行=。=

重新编写Dockerfile:

$ vi Dockerfile

Dockerfile:

FROM tomcat:7-jre7

MAINTAINER "errorlife "

ADD dockertest.war /usr/local/tomcat/webapps/ #将war包添加进webapps中

CMD ["catalina.sh", "run"] #启动tomcat shell执行程序

运行结果

汤姆猫服务器war作用,如何使用Dockerfile构建Tomcat镜像并部署war_第1张图片

0x04 其他配置文件

应用场景

由于一些项目需要修改tomcat的context.xml,setting.xml,tomcat-user.xml等,还有一些tomcat的lib包,甚至是添加一些独有的授权文件,那么也应该在dockerfile中add进去,而不是直接放到Linux的文件管理系统中。

Show一下我的Dockerfile

FROM tomcat:7-jre7

MAINTAINER "errorlife "

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镜像

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 概述:   在前面的例子中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一种文件或脚本,我们把想执行的操 ...

随机推荐

c++ boost asio库初学习

前些日子研究了一个c++的一个socket库,留下范例代码给以后自己参考. 同步server: // asio_server.cpp : コンソール アプリケーションのエントリ ポイントを定義します. ...

[delphi]SetWindowsHookExA函数入口处修改

library Project2; uses SysUtils, Classes, windows, Dialogs; {$R *.res} function GetModuleHandleA(a: ...

Qt环境搭建(Qt Creator)+Visual Studio

1.http://www.cnblogs.com/ranjiewen/p/5318768.html 简述 经常有人问我编写Qt程序时使用什么IDE,其实这个真的很难回答(各有所长),只能说看个人爱好了 ...

gets(),fgets()的作用机制探究

gets(),fgets() scanf("%d",&a)若接受形如 2 这样的输入后,缓冲区内会留一个\n,此后若调用gets等函数时会读出这个换行出现错误,需注意 fg ...

angular 模板 小例子

参考网站:https://docs.angularjs.org/tutorial/step_09 先看下目录结构 新建个空文件夹, 输入命令: express --view ejs cnpm inst ...

Unity3d Shader开发(五)Fallback ,Category

Fallback定义在所有子着色器后.简单来说,它表示"如果没有任何子着色器能被运行在当前硬件上,请尝试使用降级着色器". Syntax 语法 Fallback "nam ...

fio——IO基准测试

简介 fio是IO工具,既可以用于基准测试,也可以用于硬件的压力测试验证(stress/hardware verification). 支持13种不同的IO引擎(sync.mmap.libaio.po ...

python操作samba

最近在部署完xxl-job后,陆续将一些日常性执行的python脚本迁移到上面去:其中部分脚本涉及到对samaba的操作,先后尝试了pysmb.fs.smbfs.pysmbclient pysmb 安 ...

jmeter源码导入eclipse并执行

由于JMeter纯Java开发,界面也是基于Swing或AWT搞出来的,所以想更深层次的去了解这款工具或对于想了解JMeter插件开发或二次开发的童鞋们来说,读读JMeter的源码估计是必不可少的,所 ...

BitNami

BitNami 提供wordpress.joomla.drupal.bbpress等开源程序的傻瓜式安装包下载,所有的安装包内置了服务器环境,就是说,不需要在本地 电脑上另外搭建服务器,就可以一次性傻 ...

你可能感兴趣的:(汤姆猫服务器war作用)