docker-setup

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Docker 容器化技能包

Docker 容器化技能包

Dockerfile 最佳实践

Dockerfile 最佳实践

Java Spring Boot 应用

Java Spring Boot 应用

dockerfile
undefined
dockerfile
undefined

多阶段构建

多阶段构建

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"]
undefined
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"]
undefined

Docker Compose

Docker Compose

yaml
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:
yaml
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:

常用命令

常用命令

bash
undefined
bash
undefined

构建镜像

构建镜像

docker build -t myapp:latest .
docker build -t myapp:latest .

运行容器

运行容器

docker run -d -p 8080:8080 myapp:latest
docker run -d -p 8080:8080 myapp:latest

查看日志

查看日志

docker logs -f container_id
docker logs -f container_id

进入容器

进入容器

docker exec -it container_id /bin/bash
undefined
docker exec -it container_id /bin/bash
undefined