详解docker镜像centos7配置Java运行环境
作者:lqh 发布时间:2022-03-14 04:44:37
1.拉取centos镜像
docker pull centos:7
2.基于拉取到的镜像运行一个容器
docker run -it --name mycentos docker.io/centos:7 /bin/bash
运行起来就直接进入了容器的交互界面
3.容器中安装jdk
首先查询可用的jdk版本
yum search java|grep jdk
根据搜索到jdk进行安装
yum install java-1.7.0-openjdk
安装完成之后可以不用配置环境变量,因为安装完成之后貌似是自动配置好了 使用命令测试jdk是否安装成功
java -version
如果正常显示jdk的版本号说明安装成功,然后使用 exit直接退出容器到宿主机
4.安装tomcat
从官网手动下载tomcat的tar包; 下载完成的文件如: apache-tomcat-7.0.78.tar.gz 将该文件首先上传到宿主机;可以用FTP等方式,上传完成后将tomcat包拷贝到docker容器; 拷贝命令:
docker cp /apache-tomcat-7.0.78.tar.gz mycentos:/usr
上面的命令是将tomcat包拷贝到名为mycentos容器的usr目录下
5.在容器中制作tomcat启动脚本
进入已经运行的容器
docker exec -it mycentos /bin/bash
创建文件
touch /root/run.sh
编辑文件
vi /root/run.sh
输入文件内容,保存退出
#!/bin/bash
exprot JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.141-2.6.10.1.el7_3.x86_64/
export PATH=$JAVA_HOME/bin:$PATH
sh /usr/tomcat/bin/catalina.sh run
JAVA_HOME:jdk的存放目录,默认为上面命令中的
PATH:不用解释了
sh:指定tomcat真实启动的catalina.sh脚本
给run.sh添加权限
chmod u+x /root/run.sh
授权完成之后退出容器;使用exit命令退出到宿主机
6.制作tomcat镜像
docker commit mycentos mytomcat:7
将mycentos容器提交的镜像仓库,镜像名称为mytomcat,版本号为:7
7.用制作好的tomcat镜像启动一个tomcat容器
docker run -d --name tomcat1 -p 5001:8080 mytomcat:7 /root/run.sh
使用docker ps可以查看容器是否启动成功 -d:表示以守护进程方式启动 --name:指定容器的名称 -p:将tomcat 8080端口映射到宿主机的5001端口 mytomcat:7:上一步制作好的tomcat镜像
8.浏览器访问
http://宿主机ip:5001
问题1:如何进入一个正在运行的容器
docker exec -it tomcat1 /bin/bash
问题2:如何部署项目到tomcat
docker cp /ROOT.war tomcat1:/usr/tomcat/webapps
直接在宿主机拷贝Jar包到容器中的tomcat webapps目录下
问题3:怎么设置docker容器的时区
cp /usr/share/zoneinfo/PRC /etc/localtime
直接在容器中执行上面的命令,执行完成后用date命令查看容器时间是否和当前时间一样
问题4:怎么设置tomcat的时区
export JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"
在tomcat/bin/catalina.sh文件中的第一行添加上面的代码;因为容器中的tomcat与真实的时间差8小时,是时区不一致导致的问题;设置完成后保存退出,然后重启容器就可以看到时间一样了
问题5:怎么重启容器
停止容器
docker stop tomcat1
启动容器
docker start tomcat1
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:https://my.oschina.net/ht896632/blog/906937


猜你喜欢
- 我就废话不多说了,大家还是直接看代码吧~//returnContent为获取到的返回参数System.out.println(returnC
- 本文实例讲述了C#实现将DataTable内容输出到Excel表格的方法。分享给大家供大家参考。具体如下:1.关于本文本文描述了一个函数(S
- 一、什么是组合模式定义:将对象以树形结构组织起来,以达成“部分-整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。动机(Mo
- 需求:当时间在凌晨0点至0点5分之间程序不执行。也就是实现判断当前时间点是否在
- 折半插入排序折半插入排序是对直接插入排序的简单改进。此处介绍的折半插入,其实就是通过不断地折半来快速确定第i个元素的插入位置,这实际上是一种
- 前言:在 Java 中,常用的锁有两种:synchronized(内置锁)和 ReentrantLock(可重入锁),二者的功效都是相同得,
- 本文实例为大家分享了PhotoView实现图片多点触控效果展示的具体代码,供大家参考,具体内容如下效果:点击后能够自由缩放、平移;添加依赖:
- 前言1.因为涉及到对象锁,Wait、Notify一定要在synchronized里面进行使用。2.Wait必须暂定当前正在执行的线程,并释放
- 今天,写了个小代码。抓取首页中的极客头条。效果如图:分享给新手朋友。要点:1.使用ApacheHttpClient库实现GET请求。2.异步
- Android广播机制概述Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播
- 本文实例讲述了Android基于AlarmManager实现用户在线心跳功能。分享给大家供大家参考,具体如下:在做即时通信或者其他检测是否在
- 邮件发送 方法一:使用System.Web.Mail命名空间(此方法我测试没有成功过) #region 发送邮件:此方法失败 pr
- 一.static关键字的用途在《Java编程思想》P86页有这样一段话:“static方法就是没有this的方法。在st
- 对接前端后效果展示如图:1、CPU相关信息实体类/** * CPU相关信息 * * @author csp */public class
- 本文实例为大家分享了Java实现图片拼接的具体代码,供大家参考,具体内容如下/** * 拼接图片(注:图片需长宽一致) * @param f
- 本文实例讲述了Java 8新增的方法参数反射。分享给大家供大家参考,具体如下:一 点睛Java 8在java.lang.reflect包下新
- 看了这个排行榜, 小编只想说:流水的编程语言,铁打的Java,C/C++!!人工智能的前景已经不用多说了,越来越多的人看重人工智能的前景,想
- 本文实例为大家分享了Java实现置换密码加密解密,供大家参考,具体内容如下思路置换密码只不过是简单的换位而已,这里写的是一个分组长度为7的置
- 问题用过storm或者jstorm的都知道,如果在bolt代码中发生了没被catch住的异常,所在worker进程会退出。本文就从源码角度分
- 本文所述实例为使用伪随机数进行用户密码加密,这段代码为核心部分主要代码,需要配合其它的程序实现,感兴趣的读者可以自己进一步加以完善,不费话了