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

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


目录
相关文章
|
16天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
153 77
|
24天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
2天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
15 4
|
18天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
59 3
|
24天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
63 7
|
24天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
31 5
|
24天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
53 4
|
24天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
56 3
|
24天前
|
存储 安全 数据安全/隐私保护
Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。
在数字化时代,Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。本文探讨了 Docker 应用的备份与恢复策略,涵盖备份的重要性、内容、方法及常见工具,制定备份策略,恢复流程及注意事项,并通过案例分析和未来趋势展望,强调备份与恢复在保障应用安全中的重要性。
29 2
|
24天前
|
存储 安全 数据中心
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具。本文探讨了 Docker 如何通过 Namespace 和 Cgroups 实现 CPU、内存、网络和存储资源的隔离,提高系统安全性和资源利用率,以及面临的挑战和应对策略。
43 1