1. Docker Compose๋?
โข
์ฌ๋ฌ ๊ฐ์ ์ปจํ
์ด๋๋ฅผ ํ๋์ ์๋น์ค์ฒ๋ผ ๋ฌถ์ด์ ๊ด๋ฆฌํ ์ ์๋ ๋๊ตฌ
โข
๋ณดํต ์ ํ๋ฆฌ์ผ์ด์
์ ์น ์๋ฒ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์บ์ ์๋ฒ ๋ฑ ์ฌ๋ฌ ์ปจํ
์ด๋๊ฐ ํ์ํฉ๋๋ค.
โข
์ด๋ Compose๋ฅผ ์ฌ์ฉํ๋ฉด YAML ํ์ผ(docker-compose.yml)์ ์ ์๋ง ํด๋๊ณ ,docker compose up ํ ๋ฒ์ผ๋ก ๋ชจ๋ ์ปจํ
์ด๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
2. Docker Compose์ ์ฅ์
1.
์ฌ๋ฌ ์ปจํ
์ด๋ ์ผ๊ด ์คํ (์: Nginx + Spring + MySQL)
2.
ํ๊ฒฝ ์ค์ (YAML) ํ์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ ๊ฐ๋ฅ
3.
์ปจํ
์ด๋ ๊ฐ ๋คํธ์ํฌ ์๋ ์์ฑ โ ์๋น์ค ์ด๋ฆ์ผ๋ก ํต์ ๊ฐ๋ฅ
4.
docker compose up -d / docker compose down ์ผ๋ก ๊ฐ๋จํ ์์ยท์ข
๋ฃ
3. ๊ธฐ๋ณธ ๊ตฌ์กฐ (docker-compose.yml)
version: "3.9"
services:
web:
image: <์ด๋ฏธ์ง๋ช
>
ports:
- "8080:80"
networks:
- mynetwork
db:
image: <์ด๋ฏธ์ง๋ช
>
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mydb
volumes:
- db_data:/var/lib/mysql # ๋ง์ดํธ
networks:
- mynetwork
volumes:
db_data:
networks:
mynetwork:
YAML
๋ณต์ฌ
4. ์ฃผ์ ๋ช
๋ น์ด
์๋น์ค ์คํ
docker compose up -d
Bash
๋ณต์ฌ
์๋น์ค ์ค์ง & ์ปจํ
์ด๋ ์ญ์
docker compose down
Bash
๋ณต์ฌ
๋ก๊ทธ ํ์ธ
docker compose logs -f
Bash
๋ณต์ฌ
ํน์ ์๋น์ค๋ง ์คํ
docker compose up -d <์๋น์ค๋ช
>
Bash
๋ณต์ฌ
5. ์ค์ต ์์ (Nginx + MySQL)
1.
docker-compose.yml ์์ฑ
2.
์คํ
docker compose up -d
Bash
๋ณต์ฌ
3.
ํ์ธ
docker ps
docker network ls # compose ์ ์ฉ ๋คํธ์ํฌ ์๋ ์์ฑ๋จ
Bash
๋ณต์ฌ
4.
์ข
๋ฃ
docker compose down
Bash
๋ณต์ฌ
ํต์ฌ ์์ฝ
โข
Docker Compose = ์ฌ๋ฌ ์ปจํ
์ด๋๋ฅผ YAML ํ์ผ๋ก ์ ์ํ๊ณ ํ ๋ฒ์ ๊ด๋ฆฌํ๋ ๋๊ตฌ
โข
์๋น์ค ๊ฐ ๋คํธ์ํฌ ์๋ ๊ตฌ์ฑ + ๋ณผ๋ฅจ ๊ด๋ฆฌ
โข
docker compose up / docker compose down ์ผ๋ก ์ฝ๊ฒ ์คํ/์ค์ง