docker编写java的jar完整步骤记录

2025-09-23 12:50

本文主要是介绍docker编写java的jar完整步骤记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代...

all-doChina编程cker/

├── docker-compose.yml

├── a/

│ ├── Dockerfile

│ └── a.jar

└── b/

├── Dockerfile

└── b.jar

生成Docker打包部署文件

项目结构说明

项目根目录包含docker-compose.yml和两个子目录a/b/,分别存放服务A和服务B的代码及Docker配置。目标是通过Docker Compose统一构建和部署这两个服务。

配置服务A的Dockerfile (a/Dockerfile)

# 使用官方Java基础镜像
FROM openjdk:17-jdk-slim

# 复制JAR文件到容器
COPY a.jar /app/a.jar

# 指定启动命令
ENTRYPOINT ["java", "-jar", "/app/a.jar"]

配置服务B的Dockerfile (b/Dockerfile)

# 使用官方Java基础镜像
FROM openjdk:17-jdk-slim

# 复制JAR文件到容器
COPY b.jar /app/b.jar

# 指定启动命令
ENTRYPOINT ["java", "-jar", "/app/b.jar"]

编写docker-compose.yml

version: '3.8'

services:
  service-a:
    build: ./a  # 指向服务A的Dockerfile目录
    container_name: service-a
    ports:
      - "8080:8080"  # 假设服务A暴露8080端口
    restart: unless-stopped

  service-b:
    build: ./b  # 指向服务B的Dockerfile目录
    container_name: service-b
    ports:
      - "8081:8081"  # 假设服务B暴露8081端口
    restart: unless-stopped

操作步骤

  1. 构建镜像
    在项目根目录执行以下命令,构建所有服务的Docker镜像:

    docker-compose jsbuild
    
  2. 启动服务
    启动所有容器并运行服务:

    docker-compose up -d
    
  3. 验证服务
    检查容器状态:

    docker-compose ps
    

    访问服务AChina编程的接口(如http://localhost:8080)和服务B的接口(如http://localhost:8081)。

注意事项

  • 端口冲突
    确保docker-compose.yml中定义的端口与本地或其他服务无冲突。

  • 环境变量
    如需动态配置,可在docker-compose.yml中添加environment字段:

    service-a:
      environment:
        - SPRING_PROFILES_ACTIVE=prod
    
  • 日志查看
    调试时可通过以下命令查看实时日志:

    docker-compose logs -f service-a
    

生成Docker打包部署文件

项目结构说明

项目根目录包含docker-compose.yml和两个子目录a/b/,分别存放服务A和服务B的代码及Docker配置。目标是通过Docker Compose统一构建和部署这两个服务。

配置服务A的Dockerfile (a/Dockerfile)

# 使用官方Java基础镜像
FROM openjdk:17-jdk-slim

# 复制JAR文件到容器
COPY a.jar /app/a.jar

# 指定启动命令
ENTRYPOINT ["java", "-jar", "/app/a.jar"]

配置服务B的Dockerfile (b/Dockerfile)

# 使用官方Java基础镜像
FROM openjdk:17-jdk-slim

# 复制JAR文件到容器
COPY b.jar /app/b.jar

# 指定启动命令
ENTRYPOINT ["java", "-jar", "/app/b.jar"]

编写docker-compose.yml

version: '3.8'

services:
  service-a:
    build: ./a  # 指向服务A的Dockerfile目录
    container_name: service-a
    ports:
      - "8080:8080"  # 假设服务A暴露8080端口
    restart: unless-stopped

  service-b:
    build: ./b  # 指向服务B的Dockerfile目录
    container_name: service-b
    ports:
      - "8081:8081"  # 假设服务B暴露8081端口
    restart: unless-stopped

操作步骤

  1. 构建镜像
    在项目根目录执行以下命令,构建所有服务的Docker镜像:

    docker-compose build
    
  2. 启动服务
    启动所有容器并运行服务:

    docker-compose up -d
    
  3. 验证服务
    检查容器状态:

    docker-compose ps
    

    访问服务A的接口(如http://localhost:8080)和服务B的接口(如http://localhost:8081)。

注意事项

  • 端口冲突
    确保docker-compose.yml中定义的端口与本地或其他服务无冲突。

  • 环境变量
    如需动态配置,可在docker-compose.yml中添加environment字段:

    service-a:
     编程China编程 environment:
        - SPRING_PROFILES_ACTIVE=prod
    
  • 日志查看
    调试时可通过以下命令查看实时日志:

    docker-compose logs -f service-a
    

总结 

到此这篇关于docker编写java的jar的文章就介绍到这了,更多相关docker编写java的jar内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!

这篇关于docker编写java的jar完整步骤记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155982

相关文章

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都

Spring定时任务之fixedRateString的实现示例

《Spring定时任务之fixedRateString的实现示例》本文主要介绍了Spring定时任务之fixedRateString的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录从毫秒到 Duration:为何要改变?核心:Java.time.Duration.parse

Java 中 Optional 的用法及最佳实践

《Java中Optional的用法及最佳实践》在Java开发中,空指针异常(NullPointerException)是开发者最常遇到的问题之一,本篇文章将详细讲解Optional的用法、常用方... 目录前言1. 什么是 Optional?主要特性:2. Optional 的基本用法2.1 创建 Opti

Java中实现对象的拷贝案例讲解

《Java中实现对象的拷贝案例讲解》Java对象拷贝分为浅拷贝(复制值及引用地址)和深拷贝(递归复制所有引用对象),常用方法包括Object.clone()、序列化及JSON转换,需处理循环引用问题,... 目录对象的拷贝简介浅拷贝和深拷贝浅拷贝深拷贝深拷贝和循环引用总结对象的拷贝简介对象的拷贝,把一个

Java 字符串操作之contains 和 substring 方法最佳实践与常见问题

《Java字符串操作之contains和substring方法最佳实践与常见问题》本文给大家详细介绍Java字符串操作之contains和substring方法最佳实践与常见问题,本文结合实例... 目录一、contains 方法详解1. 方法定义与语法2. 底层实现原理3. 使用示例4. 注意事项二、su

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

Spring Boot中获取IOC容器的多种方式

《SpringBoot中获取IOC容器的多种方式》本文主要介绍了SpringBoot中获取IOC容器的多种方式,包括直接注入、实现ApplicationContextAware接口、通过Spring... 目录1. 直接注入ApplicationContext2. 实现ApplicationContextA

详解Spring中REQUIRED事务的回滚机制详解

《详解Spring中REQUIRED事务的回滚机制详解》在Spring的事务管理中,REQUIRED是最常用也是默认的事务传播属性,本文就来详细的介绍一下Spring中REQUIRED事务的回滚机制,... 目录1. REQUIRED 的定义2. REQUIRED 下的回滚机制2.1 异常触发回滚2.2 回

Java 单元测试之Mockito 模拟静态方法与私有方法最佳实践

《Java单元测试之Mockito模拟静态方法与私有方法最佳实践》本文将深入探讨如何使用Mockito来模拟静态方法和私有方法,结合大量实战代码示例,带你突破传统单元测试的边界,写出更彻底、更独立... 目录Mockito 简介:为什么选择它?环境准备模拟静态方法:打破“不可变”的枷锁传统困境解法一:使用M

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日