CentOS 上 Java 容器化落地指南
一 环境准备与基础镜像选择
二 构建与运行 Spring Boot 应用的 Docker 镜像
# 构建阶段
FROM maven:3.8.6-openjdk-17 AS build
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn clean package -DskipTests
# 运行阶段
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]
target/
.mvn/
.idea/
*.iml
docker build -t java-demo-app:1.0 .
docker run -d -p 8080:8080 --name java-app java-demo-app:1.0
curl http://localhost:8080
FROM openjdk:11-jdk-slim
WORKDIR /app
COPY target/app.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]
三 编排与扩展 Kubernetes 部署
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/java-demo-app:1.0
ports:
- containerPort: 8080
resources:
requests:
memory: "512Mi"
cpu: "500m"
limits:
memory: "1Gi"
cpu: "1"
---
apiVersion: v1
kind: Service
metadata:
name: java-app-service
spec:
selector:
app: java-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
kubectl apply -f deployment.yaml
kubectl get pods -l app=java-app
kubectl get svc java-app-service
四 生产级优化与最佳实践