Dcoker构建部署Java项目过程

2024-01-12 17:04

本文主要是介绍Dcoker构建部署Java项目过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

一、打包

二、Docker File文件编写

一个简单的Docker File文件

三、上传文件

四、构建镜像

五、运行

六、端口开放


前言

使用Dcoker构建部署Java项目,发布到服务器


一、打包

我这里打包的是item-service这个module,clean-cpmpile-package

避坑: 像我这样的目录结构,item-service里面有引用父类的pom,并且也引用了公共组件common的pom依赖,那么,在打包item-service之前,需要现将父工程和common工程进行:clean-cpmpile-package-install,随后才可以完成打包item-service。

打包完成在target下有一个包:

这个是等会需要上传的文件。

还有一个坑是:

 item-service这个服务的pom里面需要有:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

 不然镜像构建好之后,docker run时发现报错,找不到主类。

二、Docker File文件编写

一个简单的Docker File文件

# 使用官方的OpenJDK 8作为基础镜像
FROM openjdk:8-jdk-alpine# 将本地当前目录下的jar包复制到容器的/app路径下
COPY item-service.jar /app.jar# 设置容器启动时运行jar包命令
ENTRYPOINT ["java", "-jar", "/app.jar"]

 COPY item-service.jar /app.jar   这一行命令的item-service.jar是我将前面打包后上传的服务名字改了,如果不改,就得写成下同的名字。

三、上传文件

将Dockerfile文件和服务的jar包上传到一个目录下:

四、构建镜像

docker build -t item-service .

 后面的item-service是镜像名字,最后又一个点,是构建在当前目录的

五、运行

docker run -d --name item-service --network demo -p 8082:8082 item-service

 这里设置了网桥,如果说你项目的其他组件,例如:MySQL、Nacos等都使用Docker部署,这些组件需要在一个网桥里面才能够互相访问,我这里是自定义了一个网桥,默认的网桥的bridge。配置网桥之后,Docker里面容器互相访问,是通过容器名字访问的,所以,yml配置文件中凡是涉及到IP地址的,都需要改为容器的名字:

 启动之后可以用docker logs + 镜像名字来查看启动日志,这个就和你在idea控制台的启动日志一样了,只要没报错就算是启动成功了,然后docker ps 看一下容器的状态ok不ok。

六、端口开放

# 开放端口
sudo firewall-cmd --add-port=8082/tcp --permanent

# 查看端口是否放行
firewall-cmd --query-port=8082/tcp

# 重启防火墙
sudo firewall-cmd --reload 

如果跟我一样买的云服务器,还要去控制台开端口。

齐活儿~

这篇关于Dcoker构建部署Java项目过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Spring Cloud之注册中心Nacos的使用详解

《SpringCloud之注册中心Nacos的使用详解》本文介绍SpringCloudAlibaba中的Nacos组件,对比了Nacos与Eureka的区别,展示了如何在项目中引入SpringClo... 目录Naacos服务注册/服务发现引⼊Spring Cloud Alibaba依赖引入Naco编程s依

java导出pdf文件的详细实现方法

《java导出pdf文件的详细实现方法》:本文主要介绍java导出pdf文件的详细实现方法,包括制作模板、获取中文字体文件、实现后端服务以及前端发起请求并生成下载链接,需要的朋友可以参考下... 目录使用注意点包含内容1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接使

Java springBoot初步使用websocket的代码示例

《JavaspringBoot初步使用websocket的代码示例》:本文主要介绍JavaspringBoot初步使用websocket的相关资料,WebSocket是一种实现实时双向通信的协... 目录一、什么是websocket二、依赖坐标地址1.springBoot父级依赖2.springBoot依赖

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

Java逻辑运算符之&&、|| 与&、 |的区别及应用

《Java逻辑运算符之&&、||与&、|的区别及应用》:本文主要介绍Java逻辑运算符之&&、||与&、|的区别及应用的相关资料,分别是&&、||与&、|,并探讨了它们在不同应用场景中... 目录前言一、基本概念与运算符介绍二、短路与与非短路与:&& 与 & 的区别1. &&:短路与(AND)2. &:非短

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架