Home > Development tools and environments > πŸ› οΈ[개발 도ꡬ 및 ν™˜κ²½] DataGrip으둜 μƒμ„±ν•œ MySQL DBλ₯Ό Docker μ΄λ―Έμ§€λ‘œ λ§Œλ“€κΈ°.

πŸ› οΈ[개발 도ꡬ 및 ν™˜κ²½] DataGrip으둜 μƒμ„±ν•œ MySQL DBλ₯Ό Docker μ΄λ―Έμ§€λ‘œ λ§Œλ“€κΈ°.
Development tools Enviroments

πŸ› οΈ[개발 도ꡬ 및 ν™˜κ²½] DataGrip으둜 μƒμ„±ν•œ MySQL DBλ₯Ό Docker μ΄λ―Έμ§€λ‘œ λ§Œλ“€κΈ°.

βœ…1️⃣ MySQL 데이터 덀프(Export)

  • β†˜οΈŽ mysqldump λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ MySQL 데이터λ₯Ό λ€ν”„ν•œλ‹€.
    mysqldump -u root -p --databases article > article.sql
    
  • β†˜οΈŽ -u root : MySQL μ‚¬μš©μžλͺ….
  • β†˜οΈŽ -p : λΉ„λ°€λ²ˆν˜Έ μž…λ ₯ μš”μ²­.
  • β†˜οΈŽ --databasese : νŠΉμ • λ°μ΄ν„°λ² μ΄μŠ€ 선택.
  • β†˜οΈŽ article.sql : 데이터 덀프 파일λͺ….

βœ…2️⃣ Dockerfile 생성.

  • β†˜οΈŽ MySQL을 기반으둜 ν•œ Docker 이미지λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ Dockerfile을 생성.
    • β†˜οΈŽ Dockerfile μ˜ˆμ‹œ:
      ```dockerfile
      FROM mysql:8.0.38

    # ν™˜κ²½ λ³€μˆ˜ μ„€μ •
    ENV MYSQL_DATABASE=article

    # λ€ν”„λœ SQL 파일 볡사
    COPY article.sql /docker-entrypoint-initdb.d/

    # MySQL 포트 λ…ΈμΆœ
    EXPOSE 3306
    ```

  • β†˜οΈŽ μ„€λͺ…:
    • β†˜οΈŽ FROM mysql:8.0.38 : MySQL 8.0.38 이미지 μ‚¬μš©.
    • β†˜οΈŽ ENV : ν™˜κ²½ λ³€μˆ˜ μ„€μ •.
    • β†˜οΈŽ COPY : 덀프 νŒŒμΌμ„ MySQL μ΄ˆκΈ°ν™” 디렉토리에 볡사.
    • β†˜οΈŽ /docker-enrtypoint-initdb.d/ : λ””λ ‰ν„°λ¦¬λŠ” μ»¨ν…Œμ΄λ„ˆκ°€ μ‹œμž‘λ  λ•Œ SQL 슀크립트λ₯Ό μžλ™μœΌλ‘œ μ‹€ν–‰.

βœ…3️⃣ Docker 이미지 λΉŒλ“œ.

  • β†˜οΈŽ Dockerfile이 μžˆλŠ” λ””λ ‰ν„°λ¦¬λ‘œ μ΄λ™ν•œ ν›„, Docker 이미지λ₯Ό λΉŒλ“œ.
    docker build .
    

βœ…4️⃣ Dockerfile의 μœ„μΉ˜.

πŸ“Œ μ„€λͺ….

  • β†˜οΈŽ Dockerfile은 μ‚¬μš©μžκ°€ 직접 생성해야 함.
    • β†˜οΈŽ MySQL 곡식 이미지(mysql:8.0.38)μ—λŠ” Dockerfile이 ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©°, μ‚¬μš©μžμ˜ μš”κ΅¬μ‚¬ν•­μ— 맞게 μ»€μŠ€ν„°λ§ˆμ΄μ§•ν•΄μ•Ό 함.

πŸ“Œ Dockerfile 생성 μœ„μΉ˜.

  • β†˜οΈŽ Dockerfile은 주둜 λ‹€μŒκ³Ό 같은 μœ„μΉ˜μ— 생성됨.
    • β†˜οΈŽ ν”„λ‘œμ νŠΈ 루트 디렉터리
    • β†˜οΈŽ Docker κ΄€λ ¨ μ„€μ • 디렉터리 (예: docker/)
      • β†˜οΈŽ μ˜ˆμ‹œ ν”„λ‘œμ νŠΈ ꡬ쑰:
          kobe-board/
          β”œβ”€β”€ docker/
          β”‚   β”œβ”€β”€ Dockerfile       ← Dockerfile 생성
          β”‚   β”œβ”€β”€ backup.sql       ← MySQL 덀프 파일 (선택 사항)
          β”‚   β”œβ”€β”€ docker-compose.yml (선택 사항)
          β”œβ”€β”€ service/
          β”‚   β”œβ”€β”€ article/
          β”‚   β”œβ”€β”€ comment/
          └── common/
        

βœ…5️⃣ Dockerfile 생성.

πŸ“Œ ν”„λ‘œμ νŠΈ 루트 λ””λ ‰ν„°λ¦¬λ‘œ 이동.

  • β†˜οΈŽ
    cd /Users/kobe/Desktop/kobe-board
    

πŸ“Œ docker 디렉터리 생성(선택 사항).

  • β†˜οΈŽ
    mkdir docker
    cd docker
    

πŸ“Œ Dockerfile 생성.

  • β†˜οΈŽ
    vi Dockerfile
    

πŸ“Œ Dockerfile λ‚΄μš© μž‘μ„±.

  • β†˜οΈŽ 예제 Dockerfile:
    ```dockerfile

    MySQL 곡식 이미지 μ‚¬μš©

    FROM mysql:8.0.38

ν™˜κ²½ λ³€μˆ˜ μ„€μ •

ENV MYSQL_DATABASE=article

SQL 덀프 파일 볡사 (선택 사항)

COPY article.sql /docker-entrypoint-initdb.d/

MySQL 포트 λ…ΈμΆœ

EXPOSE 3306
```

βœ…6️⃣ μ£Όμ˜μ‚¬ν•­

  • β†˜οΈŽ 1. Dockerfile μœ„μΉ˜
    • β†˜οΈŽ Dockerfile은 docker build λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λŠ” 디렉터리에 μ‘΄μž¬ν•΄μ•Ό 함.
  • β†˜οΈŽ 2. SQL 덀프 파일
    • β†˜οΈŽ article.sql 파일이 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ ν•΄λ‹ΉλΆ€λΆ„(COPY article.sql)을 μƒλž΅ν•˜κ±°λ‚˜ μˆ˜μ •ν•΄μ•Ό 함.
  • β†˜οΈŽ 3. 디렉터리 κΆŒν•œ
    • β†˜οΈŽ MySQL 데이터가 μ €μž₯될 λ””λ ‰ν„°λ¦¬λŠ” Dockerκ°€ μ ‘κ·Ό κ°€λŠ₯ν•΄μ•Ό 함.