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