溫馨提示×

Java在Debian上的容器化部署實踐

小樊
49
2025-09-15 07:20:57
欄目: 編程語言

以下是Java在Debian上的容器化部署實踐步驟:

一、安裝Docker

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

二、編寫Dockerfile

# 基礎鏡像(推薦使用官方輕量級鏡像)
FROM openjdk:17-jdk-slim

# 設置工作目錄
WORKDIR /app

# 復制JAR文件到容器
COPY target/*.jar /app/app.jar

# 暴露端口
EXPOSE 8080

# 啟動命令
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

三、構建與運行容器

  • 構建鏡像:在Dockerfile所在目錄執行
    docker build -t java-app:1.0 .
  • 運行容器
    docker run -d -p 8080:8080 --name java-app java-app:1.0

四、進階實踐

  1. 多階段構建(優化鏡像體積)

    # 編譯階段
    FROM maven:3.8.6-jdk-11 AS build
    COPY src /app/src
    COPY pom.xml /app
    RUN mvn clean package -DskipTests
    
    # 運行階段
    FROM openjdk:11-jre-slim
    COPY --from=build /app/target/*.jar /app/app.jar
    EXPOSE 8080
    ENTRYPOINT ["java", "-jar", "/app/app.jar"]
    
  2. 環境變量配置

    ENV SPRING_PROFILES_ACTIVE=prod
    ENTRYPOINT ["java", "-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}", "-jar", "/app/app.jar"]
    
  3. 健康檢查

    HEALTHCHECK CMD curl --fail http://localhost:8080/health || exit 1
    

五、容器管理

  • 查看運行狀態docker ps
  • 停止容器docker stop <容器ID>
  • 刪除容器docker rm <容器ID>

六、安全建議

  • 避免以root用戶運行容器,使用USER指令切換用戶。
  • 定期更新基礎鏡像以修補安全漏洞。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女