文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Docker构建Java镜像并部署Java项目

2023-09-05 09:59

关注

文章目录

本文介绍了如何使用Docker构建一个Java项目的镜像,并以后端项目为例进行演示。在这个例子中,我们将使用eclipse-temurin:8-jre作为基础镜像,并创建一个可以运行Java项目的Docker镜像。

1. 准备工作

在开始之前,我们需要做一些准备工作。首先,确保你已经安装了Docker,并具有构建和运行Docker镜像的权限。

接下来,我们需要准备Java项目的可执行JAR文件。假设我们的Java项目构建后的可执行JAR文件位于./wms-admin/target/code-safe.jar。我们将在Docker镜像中将该JAR文件复制到容器中,并在容器中运行它。

2. 创建Dockerfile

在项目根目录下创建一个名为Dockerfile的文件,并使用以下内容:

# 指定基础镜像FROM eclipse-temurin:8-jre# 在镜像中执行命令,创建目录,并使用它作为工作目录RUN mkdir -p /project# 设置工作目录,即后续命令的默认执行路径WORKDIR /project# 复制文件或目录到镜像中。可以将本地文件或目录复制到镜像的指定位置。COPY ./code-safe.jar /project/code-safe.jar# 设置环境变量# 指定容器的时区ENV TZ=Asia/Shanghai# 用于配置 Java 虚拟机的选项,如初始堆大小、最大堆大小和随机数生成器,可通过 docker run -e "JAVA_OPTS=" 进行覆盖ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"## 应用参数ENV ARGS=""# 定义容器启动后执行的命令,启动后端项目CMD java ${JAVA_OPTS} -jar code-safe.jar $ARGS# 声明要监听的端口EXPOSE 16000

在这个Dockerfile中,我们使用eclipse-temurin:8-jre作为基础镜像。然后,我们创建一个工作目录/project,并将Java项目的可执行JAR文件复制到容器中的该目录下。

接下来,我们设置了一些环境变量,用于配置Java虚拟机的选项和应用参数。其中,JAVA_OPTS用于配置Java虚拟机的一些选项,如初始堆大小和最大堆大小。我们还定义了一个ARGS环境变量,用于传递应用程序的命令行参数。

最后,我们使用CMD指令定义容器启动后要执行的命令。在这个例子中,我们将以${JAVA_OPTS}${ARGS}为参数启动Java应用程序。

3. 构建镜像

  1. 准备好资源
  2. 将资源jar包,Dockerfile 放在同一个目录中
  3. 使用docker build命令来构建我们的Java镜像
docker build -t java .

其中,-t选项指定镜像的名称为java,.表示Dockerfile所在的当前目录。

在这里插入图片描述

在这里插入图片描述

4. 查看镜像是否构建成功

docker images

在这里插入图片描述

5. 运行容器

完成镜像的构建后,我们可以使用docker run命令来运行容器:

docker run -d -p 16000:16000 --name myjava java:latest

-d参数表示以后台方式运行容器
-p 16000:16000参数表示将容器的16000端口映射到主机的16000端口
–name myjava 参数表示为容器指定一个名字。

查看容器是否运行成功

docker ps -a

在这里插入图片描述

6. 访问Java服务

现在,我们已经成功运行了一个Java项目的Docker容器。我们可以通过访问http://localhost:16000来访问我们的Java应用程序。

7. 总结

本文介绍了如何使用Docker构建一个Java项目的镜像,并在容器中运行它。通过使用Docker,我们可以将Java应用程序打包为一个独立的容器,使得应用程序的部署和管理更加简单和灵活。希望本文对您有所帮助,谢谢阅读!

来源地址:https://blog.csdn.net/weixin_43947894/article/details/131852165

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯