Docker构建Java镜像并部署Java项目的完整步骤

 更新时间:2023年10月12日 09:29:07   作者:意料之中。  
这篇文章主要给大家介绍了关于Docker构建Java镜像并部署Java项目的完整步骤,Docker是一种容器化技术,可以帮助开发者轻松打包应用程序和依赖项,并在任何地方运行它们,需要的朋友可以参考下

前言

本文介绍了如何使用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. 构建镜像

  • 准备好资源
  • 将资源jar包,Dockerfile 放在同一个目录中
  • 使用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应用程序打包为一个独立的容器,使得应用程序的部署和管理更加简单和灵活。

到此这篇关于Docker构建Java镜像并部署Java项目的文章就介绍到这了,更多相关Docker构建Java镜像并部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker容器简单部署nginx过程解析

    Docker容器简单部署nginx过程解析

    这篇文章主要介绍了Docker容器简单部署nginx过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Docker Desktop 启用 Kubernetes 失败后处理方案

    Docker Desktop 启用 Kubernetes 失败后处理方案

     在setting -> Kubernetes 中,选中 Enable Kubernetes 后,长时间显示 Starting ...  ,在Images中显示几个自动下载的镜像后,显示 Start Kubernetes failed,这篇文章主要介绍了Docker Desktop启用Kubernetes失败后处理方法,需要的朋友可以参考下
    2023-08-08
  • nginx在docker容器中自动生成配置文件

    nginx在docker容器中自动生成配置文件

    这篇文章主要介绍了nginx在docker容器中自动生成配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • 详解CentOS 7 : Docker私有仓库搭建和使用

    详解CentOS 7 : Docker私有仓库搭建和使用

    本篇文章主要介绍了详解CentOS 7 : Docker私有仓库搭建和使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 多云环境下的Docker部署策略实现

    多云环境下的Docker部署策略实现

    在多云环境下,Docker容器技术为应用程序的部署提供了高度的灵活性和可扩展性,本文就来介绍一下多云环境下的Docker部署策略实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • docker下安装Nginx的方法

    docker下安装Nginx的方法

    这篇文章主要介绍了docker下安装Nginx的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • 如何使用 Dockerfile 创建一个简单容器

    如何使用 Dockerfile 创建一个简单容器

    这篇文章主要介绍了如何使用 Dockerfile 创建一个简单容器,Dockerfile 是用于指导 docker 创建自定义 image 的一系列指令,是用于创建 image 的蓝图,下文更多详细介绍需要的小伙伴可以参考一下
    2022-04-04
  • 使用docker-compose,如何调整JVM参数

    使用docker-compose,如何调整JVM参数

    这篇文章主要介绍了使用docker-compose,如何调整JVM参数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • docker-compose ports和expose的区别详解

    docker-compose ports和expose的区别详解

    这篇文章主要介绍了docker-compose ports和expose的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Docker 下载镜像慢的问题解决方法

    Docker 下载镜像慢的问题解决方法

    这篇文章主要介绍了Docker 解决下载镜像慢的问题的相关资料,这里提供了具体实现方法,需要的朋友可以参考下
    2016-11-11

最新评论