当前位置: 首页 > news >正文

使用Docker将Java项目打包并部署到CentOS服务器的详细教程。

当然,让我们将上述步骤进一步细化,以便更好地理解整个过程。

前提条件

  • 一个Java项目
  • CentOS服务器,并且已安装Docker
  • Java项目可以正常在本地运行
  • 具有服务器访问权限
    ————————————————————————————————————————————

步骤 1: 准备Java项目

确保你的Java项目能够在本地环境中正常运行。这里我们假设你的项目是一个简单的Spring Boot应用,结构如下:

my-java-app/
|-- src/
|   |-- main/
|       |-- java/
|           |-- com/
|               |-- example/
|                   |-- App.java
|-- pom.xml

pom.xml 文件中,确保你有以下插件来构建可执行的jar包:

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

步骤 2: 编写Dockerfile

在你的项目根目录下创建一个名为 Dockerfile 的文件,内容如下:

# 指定基础镜像,这里使用OpenJDK 8
FROM openjdk:8-jdk-alpine
# 维护者信息
LABEL maintainer="yourname@example.com"
# 设置工作目录
WORKDIR /app
# 将当前目录下的pom.xml和src文件夹复制到工作目录下
COPY . /app
# 打包应用(这一步会构建项目)
RUN mvn clean package -DskipTests
# 删除不需要的源码文件,减少镜像大小
RUN rm -rf src pom.xml target/test-classes
# 暴露端口
EXPOSE 8080
# 运行jar包
CMD ["java", "-jar", "target/my-java-app-1.0-SNAPSHOT.jar"]

确保替换 my-java-app-1.0-SNAPSHOT.jar 为你的实际jar包名称。

步骤 3: 构建Java项目

在项目根目录下,使用Maven构建项目:

mvn clean package

构建完成后,会在 target 目录下生成可执行的jar包。

步骤 4: 将项目上传到服务器

将你的项目(包括 Dockerfilepom.xmlsrc 目录等)上传到CentOS服务器的某个目录下。

步骤 5: 构建Docker镜像

在服务器上,导航到项目目录,并执行以下命令构建Docker镜像:

docker build -t my-java-app .

这个命令会读取 Dockerfile 并构建一个名为 my-java-app 的镜像。

步骤 6: 运行Docker容器

使用以下命令运行容器:

docker run -d -p 8080:8080 --name my-java-app-container my-java-app

这里:

  • -d 表示在后台运行容器。
  • -p 8080:8080 表示将容器的8080端口映射到宿主机的8080端口。
  • --name my-java-app-container 为容器指定了一个名字。

步骤 7: 访问Java应用

现在,你的Java应用应该在Docker容器中运行了。你可以通过以下URL来测试应用:

http://<服务器IP地址>:8080

步骤 8: 管理容器

以下是一些管理容器的基本命令:

  • 查看所有容器(包括停止的):
    docker ps -a
    
  • 查看运行中的容器
    docker ps
    
  • 停止容器
    docker stop my-java-app-container
    
  • 启动容器
    docker start my-java-app-container
    
  • 重启容器
    docker restart my-java-app-container
    
  • 删除容器
    docker rm my-java-app-container
    
  • 查看容器日志
    docker logs my-java-app-container
    

步骤 9: 使用Docker Compose(可选)

如果你的应用需要多个服务,例如数据库或其他依赖服务,可以使用Docker Compose。创建一个 docker-compose.yml 文件:

version: '3'
services:my-java-app:build: .ports:- "8080:8080"

然后,使用以下命令启动服务:

docker-compose up -d

这样,Docker Compose会读取 docker-compose.yml 文件,构建镜像并启动容器。

总结

通过以上步骤,你已经学会了如何将Java项目打包成Docker镜像,并在CentOS服务器上运行。这只是一个开始,Docker还有很多高级功能等待你去探索,如数据持久化、网络配置、服务发现等。

http://www.lryc.cn/news/424522.html

相关文章:

  • 嘉立创eda布线宽度
  • 硬件面试经典 100 题(31~50 题)
  • 5G:下一代无线通信技术的全面解析
  • 关于refresh_token
  • Linux网络:基于OS的网络架构
  • UEC++学习(十六)变量添加中文注释、ui设置中文文本
  • Redis延迟双删
  • WO Mic 手机变身免费麦克风
  • MQ死信对列
  • springboot乡镇小区管理系统-计算机毕业设计源码73685
  • 基于vue框架的4S店汽车维修保养管理系统28a7y(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 小米开放式耳机值得买吗?南卡、小米、漫步者一周横评
  • 解决oracel锁表问题;SQL 错误 [54] [61000]: ORA-00054: 资源正忙
  • Jfinal与hibernate-validator实现后台表单
  • ansible playbook使用jinja2语法渲染inventory下的主机名和IP到/etc/hosts
  • 张飞硬件1~9电阻篇笔记
  • 探索Golang的微观世界:用net/trace包追踪网络操作
  • Unity开发抖音小游戏广告部分接入
  • World of Warcraft [CLASSIC] 80 WLK [Gundrak] BUG
  • 极狐GitLab 密钥推送保护如何保护密钥信息被泄露?
  • Qt+TSC打印机调试
  • QT 添加程序图标
  • 数据结构与算法 - 贪心算法
  • sed 一点点记忆
  • PyTorch--卷积神经网络(CNN)模型实现手写数字识别
  • 前端程序员回忆工作第1年的记录总结(一)
  • SQL Server端口设置完整详细步骤
  • 【2024】k8s集群 图文详细 部署安装使用(两万字)
  • CSS 伪类和伪元素
  • 某动一面——算法题