方式一

首先,准备好想要的jdk和tomcat,另外,我们需要创建一个Dockerfile文件。下面展示一个Dockerfile文件的完整内容:

FROM         ubuntu:14.10
MAINTAINER linx #把java与tomcat添加到容器中
ADD jdk-8u31-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.0.20.tar.gz /usr/local/ #配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_31
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.20
ENV CATALINA_BASE /usr/local/apache-tomcat-8.0.20
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin #容器运行时监听的端口
EXPOSE 8080

当然,你还是要修改一点点的,就是jdk和tomcat的版本啊,然后版本后面对应的路径啊,其余的就可以不改了。 
然后呢,jdk和tomcat和这个文件需要放在同一个路径中。 
在然后,在当前路径中召唤出终端,输入

docker build –t linx/tomcat

这个命令会遵从Dockerfile文件的规则构建镜像。猴子造完了之后,run起来,使用下面的命令启动tomcat

./usr/local/apache-tomcat-8.0.20/bin/startup.sh

OK,访问8080端口吧,可以看到熟悉的那只猫了。 
过程就这么多,开始题外话:容器开放了8080端口,但是你访问容器里面的tomcat并不是用8080哦,你懂的,容器的端口需要你主动映射到宿主机的某个端口的,算了,告诉你一个命令吧,来做端口映射:

#sudo docker run -d -p 5000:8080 training/webapp

启动一个容器的时候可以借助于-p参数来将8080端口映射成主机的5000端口,这样你访问主机的5000端口就到容器的8080端口啦。 
还有,实际上,Dockerfile文件帮你完成了容器里面环境变量的设置啊等等内容,其实还可以做更多更强大的事,你必须一定要自己查文档看!

方式二

虽然麻烦,还是提一下,毕竟也是非常正常的途径。 
首先呢,下一个随便个什么系统的空的镜像吧,然后run起来,进去,其实你此时面对的就是一个刚装了新系统的主机啊,所以其实你又懂了,开始下载想要的jdk和tomcat吧,哦,原来你的主机上已经下好了,那好,这样:

docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash

上面这个方式来启动容器可以实现将你的software文件夹挂载到容器的mnt/software/目录下,所以呢,等你进去容器,进到那个文件夹就已经看到你想要的jdk和tomcat了。 
好了,开始解压吧,开始设置环境变量吧。什么,不知道Linux中怎么设置环境变量?那就不弄了吧。

vi ~/.bashrc,进入vi编辑模式
在末尾添加如下配置
export JAVA_HOME=/opt/jdk/bin
export PATH=$PATH:$JAVA_HOME
输入wq退出vi界面
//让环境变量生效
source ~/.bashrc

上面一小段Linux设置环境变量的方法,仅供参考,更多的方式更强大的功能你必须要查文档! 
所以呢,我们现在是设置好了jdk和tomcat的环境变量了对吧,还没好?哦,我们接着说下一步,这个时候不是已经在容器里面设置好了环境变量了吗,可以输入java -version测一下好使了没有。然后输入

exit

退出容器,此时容器处于暂停状态,再然后

docker ps -a,列出所有的容器

看到刚刚exit的容器,记住容器id,因为我们要根据该id创建出新的自己的镜像,使用如下命令:

docker commit 57c312bbaad1 myName/javaweb

然后我们就创建出了一个名叫javaweb的镜像了,里面的jdk和tomcat都是我们指定的。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/smile326/article/details/51447757

docker中制作自己的JDK+tomcat镜像的更多相关文章

  1. 在docker中制作自己的JDK+tomcat镜像

    准备工作:需要Linux kernel 3.8支持 查看linux内核的版本:root@ubuntu-dev:~# cat /proc/version查看linux版本:root@ubuntu-dev ...

  2. Docker —— 使用 Dockerfile 制作 Jdk + Tomcat 镜像

    一.准备好Jdk和Tomcat apache-tomcat-8.5.50.tar.gz jdk-8u212-linux-x64.tar.gz 注意: Jdk 和 Tomcat 记得从官网下载,否则制作 ...

  3. 使用Dockerfile制作JDK+tomcat镜像

    1.准备好jdk和tomcatapache-tomcat-8.5.32.tar.gzjdk-8u181-linux-x64.tar.gz 注意:a.jdk和tomcat记得从官网下载,否则制作出来的镜 ...

  4. docker部署Javaweb项目(jdk+tomcat+mysql)

    步骤一:在主机下载安装docker,参照Centos7上安装docker 步骤二:下载Linux版本的JDK1.6和Tomcat6.0(其他项目若依赖其他版本的运行环境可选择另外版本下载),通过sec ...

  5. docker制作jdk+tomcat镜像

    docker部署TOMCAT项目 一.内核升级 [root@test01 ~]# uname -r   #内核查看确认 2.6.32-696.16.1.el6.x86_64 [root@test01 ...

  6. docker,构建nginx反向代理tomcat

    Nginx实现负载均衡是通过配置nginx.conf来实现的,nginx.conf的全部内容如下: user nginx; worker_processes 1; error_log /var/log ...

  7. 在Docker中安装和部署MongoDB集群

    此文已由作者袁欢授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在Docker中安装mongodb 采用的mongodb镜像:https://registry.hub.doc ...

  8. docker tomcat镜像制作

    推荐使用dockerfile(本文直接拉取tomcat需要进入容器自行安装vim):docker利用Dockerfile来制作镜像 1.查找Docker Hub上的tomcat镜像 [root@loc ...

  9. docker制作tomcat镜像

    准备cestos镜像.tomcat.jdk cestos是docker pull下来的 在/opt/下创建docker:mkdir -p /opt/docker 把tomcat和jdk解压到docke ...

随机推荐

  1. 使用struts的时候form用struts的,不用html本身的

    同样的struts-config.xml, web.xml的配置,使用2个版本的form,只有struts的form才能成功运行 使用html版本的form导致post的路径不对,报404 HTML版 ...

  2. js 正则表达式 验证小数点后几位

    function IsFloatByBit (value, state, bit) {             if (state == false) {                 var re ...

  3. CSDN日报20170217——《辞职信:写给我的“藤野先生”》

    [程序人生] 辞职信:写给我的"藤野先生" 作者:马伟青 对于离职的事情,我想由衷的对你说声抱歉! 我不是一个不懂得感恩的人,也不是一个不忠诚的人,更不是一个不热爱工作的人.不管提 ...

  4. textarea去掉边框

    <textarea style="BORDER-BOTTOM: 0px solid; BORDER-LEFT: 0px solid; BORDER-RIGHT: 0px solid; ...

  5. 自定义select模拟--基于jQuery

      说明 模拟select,实现原生select不能实现的样式 将html结构入在Html页面中,css,js做分离 开发人员引用只要引入相关文件,并$().selectbox()就可转换样式,有更新 ...

  6. oracle sqlplus 常用命令大全

    show和set命令是两条用于维护SQL*Plus系统变量的命令 SQL> show all --查看所有68个系统变量值 SQL> show user --显示当前连接用户 SQL> ...

  7. C语言 函数指针二(正向调用)

    //函数指针做函数参数 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<Wi ...

  8. vb 定时执行php程序

    托盘模块 Option Explicit Public Const NIF_ICON = &H2 Public Const NIF_MESSAGE = &H1 Public Const ...

  9. highCharts+Struts2生成柱状图

    这篇文章主要结合Struts2+json+Highcharts实现动态数据的显示.为了节省时间,就不写数据库了.在action中用一个集合来模拟从数据库取到的数据.模拟数据为三个学生在不同时间成绩的变 ...

  10. VR应用开发遍地走的日子还有多远

    从上世纪60年代美国计算机科学家Ivan Sutherland发明的第一款真正意义上的虚拟现实头盔,到Facebook以20亿美元收购"虚拟现实之眼"Oculus Rift,大批厂 ...