详解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
猜你喜欢
- 有时候在配置中心有些参数是需要修改的,这时候如何不重启而达到实时生效的效果呢?添加依赖<dependencies>
- 导入maven依赖<!-- https://mvnrepository.com/artifact/com.fasterxml.jack
- 在没讲.net如何随机生成汉字之前先给大家讲下汉字编码组成及原理。1、汉字编码原理到底怎么办到随机生成汉字的呢?汉字从哪里来的呢?是不是有个
- 一、运算符用于创建对象和调用构造函数。这种大家都比较熟悉,没什么好说的了。二、修饰符在用作修饰符时,new 关键字可以显式隐藏从基类继承的成
- 要实现摇一摇的功能,类似于微信的摇一摇方法1:通过分析加速计数据来判断是否进行了摇一摇操作(比较复杂)方法2:iOS自带的Shake监控AP
- Spring2.5.6开发环境搭建的过程,供大家参考,具体内容如下1、jar 包准备:spring 2.5.6 的 jar 包(链接: ht
- 1.设置url-pattern为*.do(最为常见的方式)只要你的请求url中包含配置的url-pattern,该url就可以到达Dispa
- IntelliJ IDEA是广受Java开发者喜爱的工具,其商业版的价格十分昂贵,如下图:现在有机会免费获取IntelliJ IDEA的正版
- 一、概述本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函
- 这篇文章主要介绍了Spring boot整合log4j2过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用。一、icepdf。有收费版和开源版,几种方
- 1.@RequestMapping的介绍通过@RequestMapping,我们可以把请求地址和方法进行绑定的,可以在类、方法上进行声明。类
- 今天跟大家分享一个利用外部Jar包来实现Java操作CSV文件一.资源下载1.直接下载Jar包:javacsv-2.0.jar2.利用Mav
- 最近学习了 C#实现文件上传与下载,现在分享给大家。1、C#文件上传创建MyUpload.htm页面,用于测试<form name=&
- * * 的概念动态拦截Actioon调用的对象,使开发者在一个Actioon执行的前后执行一段代码,也可以在Action执行前阻止其执行
- 什么是二叉堆二叉堆就是完全二叉树,或者是靠近完全二叉树结构的二叉树。在二叉树建树时采取前序建树就是建立的完全二叉树。也就是二叉堆。所以二叉堆
- 我们首先看下BASEJDBC的写法实例:package com.dao;import java.sql.Connection;import
- 创建我们来看看,使用Arrays 怎么创建一个新的数组,一般来说,我们可以使用Arrays 的 copyOf , copyOfRange 和
- 增加了用于处理MyBatis的两个bean:SqlSessionFactoryBean、MapperFactoryBean1、注册SqlSe
- if判断integer的问题昨天在使用mybatis的if判断integer时遇见一个小问题:<if test="isCho