一、需求

一台 Ubuntu 16.0.4 LTS ,安装了Docker服务,Rancher服务,也制作了Tomcat相关的image,接下来我们就来说一下如何快速的构建一个开发环境和测试环境

二、步骤

2.1:创建本地挂载目录

在宿主host主机上面创建两个目录,一个用来挂载正式环境的war,一个用来挂载测试环境的war,如下图所示

命令:mkdir formal test

接下来用Eclipse创建一个最简单的Dynamic Web Project,只有一个index.jsp然后打包为TestSite.war,然后把TestSite.war分别放到formal和test

目录下,如下图所示

2.2:启动容器

启动测试环境容器 tomcat_test

docker run -d --name=tomcat_test -it -v /ylkj/test:/tomcat/webapps -p : tomcat:test1

参数解析:

--name=tomcat_test: 是给容器自定义一个名称,用来区分业务,为测试环境

-v:给测试的容器指定挂载的本地目录为/ylkj/test 以后测试的包就发布到Host主机的这个目录下面 /tomcat/webapps是tomcat的运行环境目录,具体还是要看Dockerfile是如何指定Tomcat和java环境的

启动正式环境容器 tomcat_formal

docker run -d --name=tomcat_formal -it -v /ylkj/formal:/tomcat/webapps -p : tomcat:test1

参数解析:

--name=tomcat_formal: 是给容器自定义一个名称,用来区分业务,为正式环境

-v:给正式的容器指定挂载的本地目录为/ylkj/formal 以后正式的包就发布到Host主机的这个目录下面 /tomcat/webapps是tomcat的运行环境目录,具体还是要看Dockerfile是如何指定Tomcat和java环境的

如下图所示,可以看到容器启动成功

去Rancher平台可以看到,我们新创建的测试环境和正式环境的容器,如下图所示

2.3:访问测试

在浏览器分别输入http://192.168.1.53:50080/TestSite/和http://192.168.1.53/TestSite/可以看到都可以访问到我们的index.jsp

2.4:修改项目文件夹名称为ROOT

这样的目的是Tomcat 配置文件中指定的默认访问的项目是ROOT,这样改以后上面的地址就可以不输入项目名称了,直接访问IP或者IP:PORT就可以访问web项目了

进入host主机的/ylkj/formal进行修改文件夹的操作,如下图所示,测试环境同理对/ylkj/test下面的TestSite进行更名

更新操作完成如下图所示

直接输入http://192.168.1.53:50080和http://192.168.1.53进行测试如下,

在以后的操作中,只需要把测试的war包放到/ylkj/test  正式的war包放到/ylkj/formal即可,而tomcat环境用的是一个镜像

简单的说就是发布的环境相同,所以就不会出现测试环境可以跑的,到了正式环境跑不了的情况了

利用Docker搭建java项目开发环境的更多相关文章

  1. 如何通过Docker搭建一个swoft开发环境

    本篇文章给大家分享的内容是关于如何通过Docker搭建一个swoft开发环境 ,内容很详细,有需要的朋友可以参考一下,希望可以帮助到你们. Swoft首个基于 Swoole 原生协程的新时代 PHP ...

  2. 用 Docker 搭建 ORACLE 数据库开发环境

    用 Docker 搭建 ORACLE 数据库开发环境 需要安装 ORACLE 数据库做开发,直接安装的话因为各类平台的限制,非常复杂,会遇到很多问题. 还好,现在有 Docker 化的部署方式,省去很 ...

  3. 手把手教你用webpack3搭建react项目(开发环境和生产环境)(一)

    开发环境和生产环境整个配置源码在github上,源码地址:github-webpack-react 如果觉得有帮助,点个Star谢谢!! (一)是开发环境,(二)是生产环境. 一.首先创建packag ...

  4. LINUX下搭建JAVA的开发环境

    LINUX下搭建JAVA的开发环境 (2009-07-13 10:04:13)     下面就将Linux下JAVA开发环境的搭建详细道来: 1.Linux下JDK的安装 至于下载JDK的二进制可执行 ...

  5. 使用 Docker 搭建 Java Web 运行环境

    黄勇的博客 Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐 ...

  6. 转:使用 Docker 搭建 Java Web 运行环境

    原文来自于:http://www.codeceo.com/article/docker-java-web-runtime.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都 ...

  7. 使用 Docker 搭建 Java Web 运行环境(转)

    原文 http://www.importnew.com/21798.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几 ...

  8. Docker搭建Java Web运行环境

    1. 前提条件 安装了Docker的64位Linux 操作系统 Linux操作系统镜像 Linux版本的JDK压缩包 Linux版本的Tomcat压缩包 2. 启动容器 容器是在镜像的基础上来运行的, ...

  9. Mac下docker搭建lamp本地开发环境

    1.先在Mac上下载docker:官网下载:下载地址(选择mac版本下载,可能速度较慢) DaoCloud下载:下载地址(速度较快,可能版本较低) 2.装完之后打开: 3.检查一下是否下载成功: $  ...

随机推荐

  1. WebMvcConfigurerAdapter已经过时的问题解决

    spring 5开始已经废弃WebMvcConfigurerAdapter,替代的是WebMvcConfigurer接口. 参考: https://blog.csdn.net/lenkvin/arti ...

  2. MikroTik RouterOS电子克隆盘原理收集

    终于搞定RouteROS8位电子盘克隆,发个讯息出来分享一下. 不需要付费的免费分享,也没要刻意挡人财路:只是让信息流通一下. 也请看到的人不要用这个方式去赚钱,不然MikroTik还是会再反制的. ...

  3. MySQL主从复制的原理及配置方法(比较详细)

    MySQL 的数据库的高可用性的架构大概有以下几种:集群,读写分离,主备.而后面两种都是通过复制来实现的.下面将简单介绍复制的原理及配置,以及一些常见的问题 一.复制的原理 MySQL 复制基于主服务 ...

  4. Windows Phone本地数据库(SQLCE):7、Database mapping(翻译)

    这是“windows phone mango本地数据库(sqlce)”系列短片文章的第七篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需要知道的知 ...

  5. Android 关于“NetworkOnMainThreadException”出错提示的原因及解决办法

    几乎每天都在论坛里面看到有网友问这个问题,代码是无误的,在低版本的API上都可以运行的,但在3.0以上的版本就会出现NetworkOnMainThreadException 出现android.os. ...

  6. String Matching(poj1580)

    /*String Matching Description It's easy to tell if two words are identical - just check the letters. ...

  7. 记linux下rm误删bin文件的解决方式

    平常有个坏习惯,删文件为了快点,喜欢用rm xx*,删除一些关键词文件.今天为了删/bin下几个含有mix关键词的文件,使用命令rm mix*.手贱,mix和*之间多了个空格...灾难发生了!bin下 ...

  8. 【 D3.js 入门系列 --- 2 】 怎样使用数据和选择元素

    本人的个人博客首页为: http://www.ourd3js.com/  ,csdn博客首页为:http://blog.csdn.net/lzhlzz/. 转载请注明出处,谢谢. 接着上一讲的内容,这 ...

  9. Android性能检测工具——traceview

    之前的几篇文章中介绍了android中常用的一些工具,今天介绍的工具也是比较实用和方便的,它可以用量化的指标告诉我们哪个方法执行的时间最长,被调用的次数最多,有没有重复调用.下面我们就来看看它是怎么为 ...

  10. 以绑定的方式来启动service

    先说下原理,之前我们的启动service就是用startService来启动的,这是显式启动.启动后我们无法得到service中的数据,也无法知道它执行的状态,如果我们要启动它的activity和它建 ...