컴포즈 파일은 주 항목 ➡️ 이름 추가 ➡️ 설정 의 순서로 작성한다.
주요 항목에는 서비스와 네트워크, 볼륨 등이 존재한다.
YAML 형식에서는 공백에 따라 의미가 달라지므로 탭은 의미가 없으며 '공백 두 개'로 맨 처음 들여쓰기를 했다면 그 뒤로도 '공백 두 개'가 한 단이 되도록 해야 한다.
주요 항목을 적고 이름을 적을 땐 주 항목보다 한 단 들여쓰기를 해야 한다.
이름 뒤에는 반드시 : 을 붙인다.
이름을 기재한 다음, 각 컨테이너의 설정을 기재한다.
기재할 내용이 하나라면 콜론 뒤에 이어 적는다.
두개 이상이라면 줄을 바꿔 하이픈(-) 을 앞에 적고 들여쓰기를 맞춘다.
예제)
✅ 가장 간단한 docker-compose.yml 예제 (nginx)
version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
✅ 설명
| 항목 | 설명 |
| ---------- | -------------------------------- |
| version | Compose 파일 형식 버전 (3은 안정적인 기본값) |
| services | 여러 개의 컨테이너 정의하는 섹션 |
| web | 서비스 이름 (아무 이름 가능) |
| image | 사용할 도커 이미지 (여기선 nginx 최신 버전) |
| ports | 호스트:컨테이너 포트 바인딩 (8080 → 80) |
✅ 사용법
1. 위 내용을 docker-compose.yml 파일로 저장
2. 같은 디렉토리에서 아래 명령 실행:
docker-compose up
3.브라우저에서 확인:
http://localhost:8080
✅ 종료하려면
docker-compose down
또다른 예
version: "3.7"
services:
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress_user
MYSQL_PASSWORD: 123456
app:
depends_on:
- db
image: wordpress:latest
volumes:
- ./app_data:/var/www/html
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress_user
WORDPRESS_DB_PASSWORD: 123456
sudo docker-compose up
#background
sudo docker-compose up -d