Linux环境下Java容器化部署实操指南
一 环境准备与快速验证
二 构建镜像的两种方式
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY target/your-app.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]
FROM maven:3.8.6-jdk-17 AS build
WORKDIR /app
COPY pom.xml .
RUN mvn dependency:go-offline
COPY src ./src
RUN mvn package -DskipTests
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY --from=build /app/target/your-app.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]
三 运行与运维常用命令
四 配置与安全最佳实践
五 扩展 编排与交付
version: "3.8"
services:
app:
build: .
ports:
- "8080:8080"
environment:
- JAVA_OPTS=-Xms512m -Xmx1g
volumes:
- ./config:/app/config
- ./logs:/app/logs
apiVersion: apps/v1
kind: Deployment
metadata:
name: java-app
spec:
replicas: 3
selector:
matchLabels:
app: java-app
template:
metadata:
labels:
app: java-app
spec:
containers:
- name: java-app
image: your-registry/your-app:1.0
ports:
- containerPort: 8080
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "500m"
---
apiVersion: v1
kind: Service
metadata:
name: java-app-svc
spec:
selector:
app: java-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer