Docker compose
- Compose is a tool for defining and running multi-container Docker applications.
- With Compose, you use a YAML file to configure your applicationโs services.
- Then, with a single command, you create and start all the services from your configuration.
Features
- Multiple isolated environments on a single host
- Preserve volume data when containers are created
- Only recreate containers that have changed
- Variables and moving a composition between environments
docker-compose.yml
version: "3.9"
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
version: "3.9"
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
environment:
FLASK_ENV: development
redis:
image: "redis:alpine"
- ํ์ฌ ๋๋ ํ ๋ฆฌ(.)๋ฅผ ๋์ปค /code ์ ๋ง์ดํธํ๊ณ , ๋ค์ ๋น๋ ํ์ง ์๊ณ ๊ฐ๋ฐ ๊ฐ๋ฅ
Docker Compose
- ์ฌ๋ฌ ์ปจํ
์ด๋๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ๊ณ ๊ตฌ์ฑํ ์ ์๋ ๋ฐฉ๋ฒ
1. Docker Compose ์๊ฐ
- ์ ์: Docker Compose๋ ์ฌ๋ฌ ์ปจํ
์ด๋๋ฅผ ์ ์ํ๊ณ ์คํํ๊ธฐ ์ํ YAML ํ์ผ์ ์ฌ์ฉํ๋ ๋๊ตฌ
- ๋ชฉ์ : ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์
์ ๋น ๋ฅด๊ฒ ์ค์ ํ๊ณ ์คํํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ค๊ณ
2. Docker Compose ํ์ผ ๊ตฌ์กฐ
- version: Docker Compose ํ์ผ์ ๋ฒ์ ์ ์ง์
- services: ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ ์๋น์ค(์ปจํ
์ด๋)๋ฅผ ์ ์
- networks: ์ฌ์ฉ๋๋ ๋คํธ์ํฌ๋ฅผ ์ ์
- volumes: ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ์ ์
version: '3'
services:
web:
build:.
ports:
- "5000:5000"
redis:
image: "redis:alpine"
3. ์๋น์ค ์ ์
- build: Dockerfile ์์น๋ ์ด๋ฏธ์ง ์ด๋ฆ์ ์ง์ ํ์ฌ ์๋น์ค๋ฅผ ๋น๋
- image: ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค๋ฅผ ์คํ
- ports: ํธ์คํธ์ ์ปจํ
์ด๋ ๊ฐ์ ํฌํธ ๋งคํ์ ์ ์
- volumes: ์ปจํ
์ด๋ ๋ด๋ถ์ ๋๋ ํ ๋ฆฌ๋ฅผ ํธ์คํธ ์์คํ
๊ณผ ์ฐ๊ฒฐ
4. ๋คํธ์ํฌ ์ ์
- default_networks: ์๋น์ค๊ฐ ์๋์ผ๋ก ์ด ๋คํธ์ํฌ์ ์ฐ๊ฒฐ
- external: ์ธ๋ถ ๋คํธ์ํฌ๋ฅผ ์ฐธ์กฐ
networks:
mynetwork:
driver: bridge
5. ๋ณผ๋ฅจ ์ ์
- type: ๋ณผ๋ฅจ์ ์ ํ์ ์ง์ (e.g., local, external)
- driver: ์ฌ์ฉํ ๋๋ผ์ด๋ฒ๋ฅผ ์ง์
- labels: ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ
volumes:
myvolume:
driver: local
6. Docker Compose ๋ช
๋ น์ด
- docker-compose up: ์ ์๋ ์๋น์ค๋ฅผ ์์
- docker-compose down: ๋ชจ๋ ์๋น์ค๋ฅผ ์ค์งํ๊ณ ์ ๊ฑฐ
- docker-compose ps: ํ์ฌ ์คํ ์ค์ธ ์๋น์ค ์ํ๋ฅผ ํ์ธ
- docker-compose logs: ์๋น์ค ๋ก๊ทธ๋ฅผ ํ์ธ
7. ์์ ํ๋ก์ ํธ
- ์น ์ ํ๋ฆฌ์ผ์ด์
๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค: ์น ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค๋ฅผ ํฌํจํ๋ ๊ฐ๋จํ ์์ ๋ฅผ ํตํด Docker Compose์ ์ฌ์ฉ๋ฒ์ ์ค์ต
8. ๊ณ ๊ธ ์ฃผ์
- ํ๊ฒฝ ๋ณ์: ์๋น์ค๋ณ๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ
- ์๋ธ๋๋ฉ์ธ: ์๋น์ค๋ณ๋ก ๋ณ์นญ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ
- ๋ณด์: Docker Compose๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด์์ ๊ฐํํ๋ ๋ฐฉ๋ฒ
9. ์์ฃผ ๋ฌป๋ ์ง๋ฌธ
Docker Compose์ Kubernetes ๋น๊ต: ๋ ๋๊ตฌ์ ์ฐจ์ด์ ๊ณผ ๊ฐ๊ฐ์ ์ฅ๋จ์ ์ ๋ํด ์ค๋ช
ref