详解在docker中制作自己的JDK+tomcat镜像
也许你和我一样,想要自己亲手制作一个热乎乎的镜像,最好自己指定JDK版本和tomcat版本。当然,这是可以的。
根据我的水平,目前有两种办法可以制作我想要的这个镜像。来,我们先说简单点的。
方式一
首先,准备好想要的jdk和tomcat,另外,我们需要创建一个Dockerfile文件,什么,你说你不知道Dockerfile是什么也不会写Dockerfile文件?哦,那也没关系吧,你Ctrl+C就好了。下面展示一个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都是我们指定的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Docker的安装方法及运行Docker Swarm模式的使用
本文给大家简单介绍docker的安装以及1.12版本的swarm模式的使用,包括docker的安装和配置,对docker swarm简单使用感兴趣的朋友一起看看吧2016-11-11Docker制作MySQL镜像并使用`/docker-entrypoint-initdb.d/`问题
这篇文章主要介绍了Docker制作MySQL镜像并使用`/docker-entrypoint-initdb.d/`问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-05-05Ubuntu15.10安装docker和docker-compose教程
这篇文章主要介绍了Ubuntu15.10安装docker和docker-compose的教程,非常不错,具有参考借鉴价值,需要的朋友可以参考下2017-03-03Docker安装mysql教程以及解决mysqld: Can‘t read dir&nbs
本文详细介绍了如何通过Docker来安装和配置MySQL数据库,包括拉取MySQL镜像、启动MySQL容器、配置MySQL、解决常见错误等步骤,提供了详尽的命令和参数说明,帮助用户顺利完成MySQL的安装和配置,文中还提到了如何处理MySQL容器启动时遇到的“无法读取目录”2024-10-10
最新评论