๐ ๏ธ[๊ฐ๋ฐ ๋๊ตฌ ๋ฐ ํ๊ฒฝ] 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
``` - โ๏ธ Dockerfile ์์:
- โ๏ธ ์ค๋ช
:
- โ๏ธ
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:
```dockerfileMySQL ๊ณต์ ์ด๋ฏธ์ง ์ฌ์ฉ
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
๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๋๋ ํฐ๋ฆฌ์ ์กด์ฌํด์ผ ํจ.
- โ๏ธ Dockerfile์
- โ๏ธ 2. SQL ๋คํ ํ์ผ
- โ๏ธ article.sql ํ์ผ์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด ํด๋น๋ถ๋ถ(COPY article.sql)์ ์๋ตํ๊ฑฐ๋ ์์ ํด์ผ ํจ.
- โ๏ธ 3. ๋๋ ํฐ๋ฆฌ ๊ถํ
- โ๏ธ MySQL ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๋๋ ํฐ๋ฆฌ๋ Docker๊ฐ ์ ๊ทผ ๊ฐ๋ฅํด์ผ ํจ.