zoukankan      html  css  js  c++  java
  • docker中制作自己的JDK+tomcat镜像

    方式一

    首先,准备好想要的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
  • 相关阅读:
    HDU 1261 字串数(排列组合)
    Codeforces 488C Fight the Monster
    HDU 1237 简单计算器
    POJ 2240 Arbitrage
    POJ 3660 Cow Contest
    POJ 1052 MPI Maelstrom
    POJ 3259 Wormholes
    POJ 3268 Silver Cow Party
    Codesforces 485D Maximum Value
    POJ 2253 Frogger(最短路)
  • 原文地址:https://www.cnblogs.com/momoyan/p/9130233.html
Copyright © 2011-2022 走看看