如何用Dockerfile制作java运行环境的镜像
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇"如何用Dockerfile制作java运行环境的镜像"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面
千家信息网最后更新 2025年12月02日如何用Dockerfile制作java运行环境的镜像
这篇"如何用Dockerfile制作java运行环境的镜像"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"如何用Dockerfile制作java运行环境的镜像"文章吧。
当前用到的环境是:
centos 7.5
docker-ce 18.06.1-ce
1、先用centos7.5.1804的基础镜像把一些运行需要的环境装好
在/app目录下创建相对应的文件目录
[root@node2 /app/]# mkdir dockerfile/{web/{nginx,tomcat,jdk,apache},system/{centos,ubuntu,redhat}} -pv[root@node2 /app]# cd dockerfile/system/centos/[root@node2 /app/dockerfile/system/centos]# mkdir centos-7.5-base[root@node2 /app/dockerfile/system/centos]# cd centos-7.5-base创建一个dockerfile文件
[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#vim dockerfile #nginx base imagefrom centos:7.5.1804label maintaier "mr.luo"run yum install -y vim wget pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop
创建一个用于直接docker build脚本后续直接执行脚本即可
[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#vim build-command.sh #!/bin/bashdocker build -t 172.20.7.50/baseimages/centos-base:7.5.1804 .
执行脚本创建新镜像
[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#bash build-command.sh sending build context to docker daemon 3.072kbstep 1/3 : from centos:7.5.1804---> 76d6bc25b8a5step 2/3 : label maintaier 'mr.luo@dklwj.com'---> using cache---> 05ccd970d71dstep 3/3 : run yum install -y vim wget pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop---> using cache---> 73d683a54877successfully built 73d683a54877successfully tagged 172.20.7.50/baseimages/centos-base:7.5.1804
2、利用制作好的基础环境镜像制作jdk的镜像
从centos-7.5-base退出来在当前目录创建一个jdk1.8的目录.
[root@node2 /app/dockerfile/system/centos/centos-7.5-base]# cd ..[root@node2 /app/dockerfile/system/centos]# mkdir jdk1.8[root@node2 /app/dockerfile/system/centos]# cd jdk1.8/
创建dockerfile
[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim dockerfile from 172.20.7.50/baseimages/centos-base:7.5.1804label maintainer "mr.luo"add jdk-8u162-linux-x64.tar.gz /usr/local/src/run ln -s /usr/local/src/jdk1.8.0_162/ /usr/local/jdkadd profile /etc/profileenv java_home /usr/local/jdkenv jre_home $java_home/jreenv classpath $java_home/lib/:$jre_home/lib/env path $path:$java_home/binrun rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/asia/shanghai /etc/localtime && echo "asia/shanghai" > /etc/timezone
上传jdk包到当前目录下:
复制/etc/profile文件到当前目录
[root@node2 /app/dockerfile/system/centos/jdk1.8]#cp profile /etc/profile
在profile最后添加jdk的环境变量
[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim profile export java_home=/usr/local/jdkexport tomcat_home=/apps/tomcatexport path=$java_home/bin:$java_home/jre/bin:$tomcat_home/bin:$pathexport classpath=.$classpath:$java_home/lib:$java_home/jre/lib:$java_home/lib/tools.jar
创建docker build的shell脚本
[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim build-command.sh #!/bin/bash#docker build -t 172.20.7.50/baseimages/centos7.5-jdk:8.162 .
开始制作镜像
[root@node2 /app/dockerfile/system/centos/jdk1.8]#bash build-command.sh sending build context to docker daemon 189.8mb step 1/10 : from 172.20.7.50/baseimages/centos-base:7.5.1804 ---> 73d683a54877 step 2/10 : label maintainer "mr.luo" ---> running in 65604dd1f392 removing intermediate container 65604dd1f392 ---> c4720603ce38 step 3/10 : add jdk-8u162-linux-x64.tar.gz /usr/local/src/ ---> bc98adffe1b4 step 4/10 : run ln -s /usr/local/src/jdk1.8.0_162/ /usr/local/jdk ---> running in df5a6f67f9fd removing intermediate container df5a6f67f9fd ---> 0ae1af0416c6 step 5/10 : add profile /etc/profile ---> eee23a69c0c8 step 6/10 : env java_home /usr/local/jdk ---> running in edbef8563e83 removing intermediate container edbef8563e83 ---> 5f783f642054 step 7/10 : env jre_home $java_home/jre ---> running in fa0e5f08e732 removing intermediate container fa0e5f08e732 ---> 28a4d31463d4 step 8/10 : env classpath $java_home/lib/:$jre_home/lib/ ---> running in 3c4ebb04ac62 removing intermediate container 3c4ebb04ac62 ---> 245f2dd82d52 step 9/10 : env path $path:$java_home/bin ---> running in 4f5e6093f0a9 removing intermediate container 4f5e6093f0a9 ---> 5be0e6261eea step 10/10 : run rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/asia/shanghai /etc/localtime && echo "asia/shanghai" > /etc/timezone ---> running in 52d8cb8463a8 removing intermediate container 52d8cb8463a8 ---> 9fb867ae8c39 successfully built 9fb867ae8c39 successfully tagged 172.20.7.50/baseimages/centos7.5-jdk:8.162
查看当前目录下的文件
[root@node2 /app/dockerfile/system/centos/jdk1.8]#lsbuild-command.sh dockerfile jdk-8u162-linux-x64.tar.gz profile
检查制作好的镜像是否能正常使用
[root@node2 /app/dockerfile/system/centos/jdk1.8]#docker run -it --rm 172.20.7.50/baseimages/centos7.5-jdk:8.162 bash[root@919844b164dc /]# java -version java version "1.8.0_162"java(tm) se runtime environment (build 1.8.0_162-b12)java hotspot(tm) 64-bit server vm (build 25.162-b12, mixed mode)[root@919844b164dc /]# datethu nov 22 21:17:49 cst 2018[root@919844b164dc /]# exitexit
3、做tomcat的镜像
进入之前建好的/app/dockerfile/web/tomcat下,创建一个tomcat-base目录
[root@node2 ~]# cd /app/dockerfile/web/tomcat [root@node2 /app/dockerfile/web/tomcat]#mkdir tomcat-base
创建dockerfile
[root@node2 /app/dockerfile/web/tomcat/tomcat-base]#vim dockerfile from 172.20.7.50/baseimages/centos7.5-jdk:8.162label maintainer "mr.luo"run mkdir /appsadd apache-tomcat-8.5.33.tar.gz /appsrun ln -s /apps/apache-tomcat-8.5.33 /apps/tomcat
创建docker build脚本
[root@node2 /app/dockerfile/web/tomcat/tomcat-base]#vim build-command.sh #!/bin/bashdocker build -t 172.20.7.50/baseimages/centos-tomcat:8.5.33 .
执行创建镜像文件:
[root@node2 /app/dockerfile/web/tomcat/tomcat-base]#bash build-command.sh sending build context to docker daemon 9.625mb step 1/5 : from 172.20.7.50/baseimages/centos7.5-jdk:8.162 ---> 9fb867ae8c39 step 2/5 : label maintainer "mr.luo" ---> running in 9ce6fc4d2850 removing intermediate container 9ce6fc4d2850 ---> b68755061b28 step 3/5 : run mkdir /apps ---> running in b483c6b127f2 removing intermediate container b483c6b127f2 ---> 605c1a048a5f step 4/5 : add apache-tomcat-8.5.33.tar.gz /apps ---> 3c44f96ed41c step 5/5 : run ln -s /apps/apache-tomcat-8.5.33 /apps/tomcat ---> running in 4c1aa39a6c92 removing intermediate container 4c1aa39a6c92 ---> 9b3bc4f58cc9 successfully built 9b3bc4f58cc9 successfully tagged 172.20.7.50/baseimages/centos-tomcat:8.5.33
利用创建好的镜像起一个容器检查下是否成功制作好,启动时加上-p暴露端口,在物理机上测试下
[root@node2 /app/dockerfile/web/tomcat/tomcat-base]#docker run -it -p 8802:8080 172.20.7.50/baseimages/centos-tomcat:8.5.33 bash [root@917b2c2262a3 /]# cd /apps/[root@917b2c2262a3 apps]# lltotal 0drwxr-xr-x 9 root root 220 nov 22 22:08 apache-tomcat-8.5.33lrwxrwxrwx 1 root root 26 nov 22 22:08 tomcat -> /apps/apache-tomcat-8.5.33[root@917b2c2262a3 apps]# ./tomcat/bin/catalina.sh startusing catalina_base: /apps/tomcatusing catalina_home: /apps/tomcatusing catalina_tmpdir: /apps/tomcat/tempusing jre_home: /usr/local/jdk/jreusing classpath: /apps/tomcat/bin/bootstrap.jar:/apps/tomcat/bin/tomcat-juli.jartomcat started.
在客户端用浏览器测试

以上就是关于"如何用Dockerfile制作java运行环境的镜像"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
镜像
制作
目录
环境
内容
文件
脚本
运行
基础
文章
知识
篇文章
建好
检查
测试
成功
价值
变量
大部分
客户
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全主题漫画四年级
数据库技术基础是SQL吗
广州软件开发培训机构
如何创建单机数据库
国家安全教育宣传网络安全
浙江省文化城市 数据库
艺术生能学软件开发吗
北京亦庄软件开发
数据库结构同步工具
web 应用服务器有哪些
魔兽世界部落9.0哪个服务器好
吉祥棋牌服务器地
系统怎么用数据库中的数据
世界上第一大网络安全公司
odac数据库连接配置
服务器管理器怎样添加角色
html前端和后端服务器案例
陕西公安网络安全
怎么从命令行退出数据库
jdbc数据库安装步骤
数据库取值不重怎么写
暗网信息网络安全
武汉国美客户数据库
鹿转服务器
云南网络安全保卫支队电话
沭阳个性化网络技术多少钱
央行3月金融统计数据库
女生计算机网络技术就业前景
互联网和科技结合
数据库合作协议