Docker 容器化技能包
Dockerfile 最佳实践
Java Spring Boot 应用
多阶段构建
FROM maven:3.8-openjdk-17 AS build WORKDIR /app COPY pom.xml . RUN mvn dependency:go-offline 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"]
Docker Compose
version: '3.8' services: app: build: . ports: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=prod depends_on: - mysql
mysql: image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=password volumes: - mysql_data:/var/lib/mysql
volumes: mysql_data:
常用命令
构建镜像
docker build -t myapp:latest .
运行容器
docker run -d -p 8080:8080 myapp:latest
查看日志
docker logs -f container_id
进入容器
docker exec -it container_id /bin/bash