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

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


目录
相关文章
|
4月前
|
缓存 前端开发 Docker
Docker Layer Caching:加速你的容器构建
Docker Layer Caching:加速你的容器构建
|
3月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
3月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
540 5
|
3月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
284 6
|
3月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
583 4
|
4月前
|
存储 Kubernetes 持续交付
为什么Docker容器化改变了开发与部署?
为什么Docker容器化改变了开发与部署?
|
4月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
336 1