• 本人电脑环境:安装好docker的open SUSE操作系统
  • 最终的docker镜像:ubuntu+tomcat+jdk

运行ubuntu镜像

sudo docker run -it -v /home/liangyh/tmp/software:/mnt/software/ ubuntu:latest /bin/bash

-v:表示增加一个卷,前面的地址是本机文件系统的地址,后面那个是docker容器中ubuntu操作系统的文件系统地址
-it:i表示交互的意思,t表示tty。用于启动一个linux交互页面。

使用另一个本地主机的cmd窗口把tomcat和jdk软件包cp到/home/liangyh/hmp/software中。这样就可以在docker容器中的/mnt/software文件夹下面访问这两个文件了。

root@dab53dc8c8af:/# cd root/
root@dab53dc8c8af:~# tar -zxf /mnt/software/jdk-7u80-linux-x64.gz
root@dab53dc8c8af:~# tar -zxf /mnt/software/apache-tomcat-8.0.32.tar.gz
root@dab53dc8c8af:~# ls
apache-tomcat-8.0.32  jdk1.7.0_80

分别建立文件夹的软链接,方便操作。

root@dab53dc8c8af:~# ln -s /root/apache-tomcat-8.0.32 tomcat
root@dab53dc8c8af:~# ln -s /root/jdk1.7.0_80 jdk
root@dab53dc8c8af:~# ls
apache-tomcat-8.0.32  jdk  jdk1.7.0_80  tomcat

我们还需要配置jdk的path环境,为了方便,我们直接在脚本中使用export,而不是在~/.profile中添加。另一个选择这样做的原因是ubuntu镜像默认没有vim或者vi编辑器,无法编辑文件。

在本地主机上面建立一个run.sh文件,内容如下所示,并放在/home/liangyh/tmp/software下面。在容器中,

root@dab53dc8c8af:~# cp /mnt/software/run.sh /root/
root@dab53dc8c8af:~# chmod +x run.sh

run.sh文件内容:

#!/bin/bash

export JAVA_HOME=/root/jdk
export PATH=$JAVA_HOME/bin:$PATHsh /root/tomcat/bin/catalina.sh run

index.html:

<html><body>
<h2>hello world</h2>
</body></html>

编辑好index.html文件,把它放在/home/liangyh/tmp/software/webapps/test/目录下面(webapps这个名字是随意的)

先离开ubuntu容器交互界面:

exit

提交容器编程一个镜像

sudo docker commit dab53dc8c8af mytomcat:1

启动新提交的镜像,在启动的时候执行run.sh脚本,启动tomcat。

sudo docker run -d -p 8080:8080 -v /home/liangyh/tmp/software/webapps/:/root/tomcat/webapps –name mytomcat mytomcat:1 /root/run.sh

这样之后,在容器中/root/tomcat/webapps/目录下面就有test这个文件夹。在本地浏览器中使用localhost:8080/test/index.html就可以访问容器中的tomcat了。

总结:
本实践的总体思路是:
- 运行一个ubuntu操作系统镜像,通过volume挂载文件的方式把本地的两个安装包cp到容器中。
- 使用脚本的方式暴露jdk的path路径和启动tomcat。
- 使用volume的方式挂载index.html文件到容器相应的位置,使得tomcat能够访问到。

在docker中搭建apache Tomcat+JDK环境相关推荐

  1. Docker自动部署Apache Tomcat

    本文讲的是Docker自动部署Apache Tomcat,[编者的话]本文是Docker的入门文章,推荐Java开发者阅读.文章详细介绍了如何用Docker来安装部署Tomcat. 介绍 本文会讲述: ...

  2. Linux平台上搭建apache+tomcat负载均衡集群

    传统的Java Web项目是通过tomcat来运行和发布的.但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的.tomcat 处理能力低,效率低,承受并发小(1000左右).当 ...

  3. 使用IntelliJ IDEA和Maven管理搭建+Web+Tomcat开发环境

    使用IntelliJ IDEA和Maven管理搭建+Web+Tomcat开发环境 使用IntelliJ IDEA和Maven管理搭建+Web+Tomcat开发环境 前言:原来一直使用Eclipse,换 ...

  4. php7搭建平台,在windows7中搭建Apache+PHP+MySQL平台

    在windows7中搭建Apache+PHP+MySQL平台 今天搞了一下午,在电脑上搭建了APM平台 系统:Windows7 Professional EN Apache2.2.9:http://a ...

  5. docker mysql 操作_[Docker] Docker 快速搭建本地MySQL开发环境

    [Docker] Docker 快速搭建本地MySQL开发环境 关于 Docker 的安装使用本文不再赘述,有兴趣的可以通过官网或是浏览我的专栏文章了解.今天着重给大家介绍下如何利用Docker快速搭 ...

  6. 阿里云apache配置php mysql_阿里云CentOS7搭建Apache+PHP+MySQL环境

    最近要搭建一个阿里云的LMAP环境,选了CentOS7来做搭建. 1.Apache Centos7默认已经安装httpd服务,只是没有启动. 如果你需要全新安装,可以yum install -y ht ...

  7. 在Centos 7下搭建Apache + PHP运行环境

    之前都是在windows server2008下搭建PHP运行环境,用IIS+PHP或者phpstudy,或wamp.今天试了试,在linux下搭建apache+php运行环境.感觉还不错. 在Cen ...

  8. confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解决方法

    confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解决方法 参考文章: (1)co ...

  9. windows和linux中搭建python集成开发环境IDE——如何设置多个python环境

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

最新文章

  1. python 虚拟环境原理_Python 虚拟环境
  2. 面向工业场景,如何实现绿色智能?
  3. Fibonacci (hdu1568)数学公式
  4. [转载] java向匿名内部类传递参数
  5. Ubuntu安装cacti步骤
  6. web CSS的知识- 关于后代选择器,子选择器,兄弟选择器的使用
  7. C语言例题——简易秒表
  8. Mysql索引优化及面试题
  9. java 读取485_java通信 485
  10. OpenCV—HSV色彩空间基础知识
  11. 商业银行数字化转型的难点与路径
  12. python 正数变成负数_LeetCode 007:整数反转 (Python)
  13. 神经网络论文Enhancing deep neural networks via multiple kernel learning
  14. Python极简讲义一本书入门机器学习和数据分析--自学笔记
  15. An exceptionCaught() event was fired, and it reached at the tail of the pipeline.
  16. mdin偏移_dif_input.c 源代码在线查看 - C8051F系列单片机开发与C语言编程 非常好的东西 资源下载 虫虫电子下载站...
  17. 接口调用正常却返回404
  18. 软件安全测试之系统安全测试
  19. mysql锁粒度是什么意思_mysql锁粒度是什么
  20. JavaCV录制屏幕(窗口)和系统声音,内录

热门文章

  1. html5改成块状标签,HTML5基本网页结构以及标签的改变
  2. dataimagepng php_nginx无法打开 dataimage/php
  3. 输入一行字符,判断单词数
  4. 【c语言】蓝桥杯算法提高 P0101
  5. 这7款APP到底有什么好,值得知乎2万人点赞,原来如此!
  6. CodeForces 631D Messenger
  7. 安装和配置以下合同 14.1管理
  8. ASP.NET中TimeSpan的用法
  9. 从assemblyer Instructure deepth understander C principle
  10. Ubuntu 7.04 相关设置