## Docker-compose λ?
볡μμ 컨ν
μ΄λμ λν λͺ
λ Ήμ΄λ₯Ό νλμ νμΌλ‘ κ΄λ¦¬νλ λꡬ. λ컀 μμ§κ³Ό λ³κ°μ μννΈμ¨μ΄μ΄λ λ컀 λ°μ€ν¬ν±μλ κΈ°λ³Έμ μΌλ‘ μ€μΉλμ΄ μμ.
## μ€μΉ
```
pip3 install docker-compose
```
## CLI νμ
```
docker-compose -f [νμΌ μ΄λ¦] [λͺ
λ Ήμ΄] [μ΅μ
]
```
## Docker-compose μ£Όμ λͺ
λ Ή
|λͺ
λ Ή|λ΄μ©|
|-|-|
|`up`|docker-composeλ‘ `docker-compose.yaml` μ μ½κ³ Dockerfile λλ μ΄λ―Έμ§ μ΄λ¦μ ν΅ν΄ 컨ν
μ΄λ μμ± > μ€νν¨.|
|`down`|컨ν
μ΄λμ λ€νΈμν¬ μ μ§ λ° μμ |
|`stop`|컨ν
μ΄λμ λ€νΈμν¬ μ μ§|
## `Docker-compose.yaml` μ£Όμ μ μ
|μ μ|docker run κΈ°μ€|λ΄μ©|
|-|-|-|
| image | μ΄λ―Έμ§ μΈμ | μ¬μ©ν Docker μ΄λ―Έμ§ μ§μ |
| ports | `-p` λλ `--publish` | νΈμ€νΈ λ° μ»¨ν
μ΄λ κ°μ ν¬νΈ λ§€ν μ€μ |
| volumes | `-v` λλ `--volume` | νΈμ€νΈ λ° μ»¨ν
μ΄λ κ°μ λ³Όλ₯¨ λ§€ν μ€μ |
| environment | `-e` λλ `--env` | νκ²½ λ³μ μ€μ |
| networks | `--net` | 컨ν
μ΄λ κ°μ λ€νΈμν¬ μ°κ²° μ€μ |
| depends_on | - | μλΉμ€ κ°μ μ’
μμ± μ€μ |
| restart | `--restart` | 컨ν
μ΄λμ μ¬μμ μ μ±
μ€μ |
| build | - | Dockerfile λλ 컨ν
μ€νΈλ₯Ό μ¬μ©ν μ΄λ―Έμ§ λΉλ μ€μ |
| command | λͺ
λ Ή μΈμ | 컨ν
μ΄λ μμ μ μ€νν λͺ
λ Ή λλ μ€ν¬λ¦½νΈ μ€μ |
| links | `--link` | λ€λ₯Έ 컨ν
μ΄λμ λν λ§ν¬ μ€μ |
### μμ
#### μΌλ°μ μΈ νμ
```
version: '1'
services:
컨ν
μ΄λ_μ΄λ¦1:
image: μ΄λ―Έμ§_μ΄λ¦
networks:
- λ€νΈμν¬_μ΄λ¦
ports:
- "ν¬νΈ_μ€μ "
컨ν
μ΄λ_μ΄λ¦2:
image: μ΄λ―Έμ§_μ΄λ¦
networks:
λ€νΈμν¬_μ΄λ¦1:
volumes:
λ³Όλ₯¨_μ΄λ¦1:
λ³Όλ₯¨_μ΄λ¦2:
```
#### MySQL > SpringBoot μμ
```yaml
# springedu2 νλ‘μ νΈ ν΄λμ μμΉ
version: "1"
services:
mysqledu:
image: mysql
container_name: mysqledu
networks:
- edunet
volumes:
- mysqleduvol:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 1234
MYSQL_DATABASE: edudb
MYSQL_USER: jdbctest
MYSQL_PASSWORD: jdbctest
ports:
- 3306:3306
springedu2:
depends_on:
- mysqledu
container_name: springedu2
build:
context: ./
dockerfile: Dockerfile
networks:
- edunet
ports:
- 8088:8088
restart: on-failure
networks:
edunet:
volumes:
mysqleduvol:
```
## μ¬μ© μμ
### Docker compose μλͺ
μ£ΌκΈ°
#### Docker compose μμ±
```
docker-compose -f [νμΌ μ΄λ¦] up -d
```
```
docker-compose up -d
```
#### Docker compose μμ
```
docker-compose -f [νμΌ μ΄λ¦] down [μ΅μ
]
```
```
docker-compose down --rmi all
```
- `--rmi all` ν΄λΉ μλΉμ€μ μ΄λ―Έμ§λ₯Ό λͺ¨λ μμ νλ μ΅μ