Docker容器化Java程序

简介: Docker容器化Java程序



Docker容器化Java程序

Docker:用于创建和管理容器的开源平台

Java运行环境:Java是一个跨平台的编程语言,因此在CentOS系统中需要安装Java运行环境才能运行Java代码

以下是在CentOS系统中容器化一个简单的Java代码"Hello, World!"的具体步骤:

  • 安装Docker

使用以下命令安装Docker:

sudo yum install docker
  • 安装Java运行环境

使用以下命令安装Java运行环境:

sudo  yum install java-1.8.0-openjdk-devel
  • 测试环境
echo $JAVA_HOME     #查看当前系统中设置的 Java 环境变量 JAVA_HOME 的值
which javac       # Java 编译器 javac 的路径
  • 创建HelloWord.Java文件(内容如下:)
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

  • 编写Java代码

在CentOS系统中创建一个名为HelloWorld.java的文件,包含以下内容:(文件保持与dockerfile同一目录)

javaCopy codepublic class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

  • 编写Dockerfile

创建一个空的目录用于编写 Dockerfile,例如:

mkdir docker-demo
cd docker-demo

在该目录下创建一个名为 Dockerfile 的文件,并使用文本编辑器打开它,例如:

vim Dockerfile
# 使用官方CentOS 7作为基础镜像
FROM centos:7
# 安装Java
RUN yum update -y && \
    yum install -y java-1.8.0-openjdk-devel && \
    yum clean all
# 配置java环境
ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk
ENV PATH $PATH:$JAVA_HOME/bin
# 复制应用程序Java文件到容器中
COPY HelloWorld.java /app/HelloWorld.java
# 设置工作目录
WORKDIR /app
# 编译Java文件
RUN javac HelloWorld.java
# 运行应用程序
CMD ["java", "HelloWorld"]

上述Dockerfile中使用了官方CentOS 7作为基础镜像,安装了Java运行环境,复制应用程序Java文件到容器中的/app目录下,并设置/app为工作目录,然后编译Java文件,并使用CMD指令启动应用程序

FROM:从一个已有的镜像作为基础镜像

MAINTAINER:指定镜像作者信息

RUN:在容器内执行命令

COPY:将文件从本地主机复制到容器内

EXPOSE:声明镜像中的容器会监听哪些端口

CMD:定义容器启动命令

ENV :指令用于设置环境变量

  • 构建Docker镜像

在Dockerfile所在目录下,执行以下命令构建Docker镜像:

sudo docker build -t hello-world .

其中hello-world为镜像名称,.表示Dockerfile所在目录

  • 运行Docker容器

构建Docker镜像后,可以使用以下命令运行Docker容器:

sudo docker run hello-world

其中hello-world为容器的名称或者镜像的名称。

  • 查看输出结果

在容器启动后,控制台输出"Hello, World!"

以上是在CentOS系统中容器化一个简单的Java代码"Hello, World!"的具体步骤

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
rpm -qa | grep java
rpm -e
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——点赞👍收藏⭐️评论📝


目录
相关文章
|
9月前
|
Java 虚拟化 容器
(Java)Java里JFrame窗体的基本操作(容器布局篇-1)
容器 容器,我的理解是可以包容其他东西的玩意。它可以是一个盒子,可以是一个虚拟化的物品,可只要能包裹住其他存在质体的东西,那么都可以称作是容器。例如:JPanel组件和JScollPane组件两者都是容器也是组件。 既然有容器,那么容器中的布局就必不可少了。不然不规矩的摆放物品,人类看不习惯,我也看不习惯 ???? 本篇内容,将说明java JFrame窗体里容器中几类布局。 说明:所有在JFrame窗体里的容器布局都会使用setLayout()方法,采用的布局参数都将放进这个方法里 绝对布局 调用窗体容器
240 1
|
11月前
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
296 2
|
9月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
402 98
|
10月前
|
存储 Java 编译器
对比Java学习Go——程序结构与变量
本节对比了Java与Go语言的基础结构,包括“Hello, World!”程序、代码组织方式、入口函数定义、基本数据类型及变量声明方式。Java强调严格的面向对象结构,所有代码需置于类中,入口方法需严格符合`public static void main(String[] args)`格式;而Go语言结构更简洁,使用包和函数组织代码,入口函数为`func main()`。两种语言在变量声明、常量定义、类型系统等方面也存在显著差异,体现了各自的设计哲学。
331 0
|
存储 缓存 安全
Java 集合容器常见面试题及详细解析
本文全面解析Java集合框架,涵盖基础概念、常见接口与类的特点及区别、底层数据结构、线程安全等内容。通过实例讲解List(如ArrayList、LinkedList)、Set(如HashSet、TreeSet)、Map(如HashMap、TreeMap)等核心组件,帮助读者深入理解集合容器的使用场景与性能优化。适合准备面试或提升开发技能的开发者阅读。
235 0
|
缓存 Java API
Java 集合容器实操技巧与案例详解
本教程基于Java 8+新特性和现代开发实践,深入讲解Java集合容器的实操技巧。通过具体场景演示Stream API数据处理、ConcurrentHashMap并发控制、LinkedHashMap实现LRU缓存、TreeSet自定义排序等高级特性。同时涵盖computeIfAbsent优化操作、EnumMap专用集合使用、集合统计与运算(交集、并集、差集)等内容。代码示例丰富,助力掌握高效编程方法。[点击获取完整代码](https://pan.quark.cn/s/14fcf913bae6)。
321 0
|
Java API Docker
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
|
搜索推荐 Java Android开发
课时146:使用JDT开发Java程序
在 Eclipse 之中提供有 JDT环境可以实现java 程序的开发,下面就通过一些功能进行演示。 项目开发流程
495 0
|
JavaScript Java Docker
干货含源码!如何用Java后端操作Docker(命令行篇)
只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

热门文章

最新文章