05. Docker(도커) - 도커 컴포즈(docker compose)

JungSik Heo·2025년 5월 27일

도커(docker)

목록 보기
6/8

컴포즈 파일을 작성하는 법

컴포즈 파일은 주 항목 ➡️ 이름 추가 ➡️ 설정 의 순서로 작성한다.
주요 항목에는 서비스와 네트워크, 볼륨 등이 존재한다.

1. version

맨 위의 version 에는 컴포즈 파일의 버전을 적는다.

2. services - 컨테이너 관련 정보

services 는 컨테이너에 대한 내용을 적는다.컨테이너가 여러 개라면, 여러 개를 적는다.

3. networks - 네트워크 관련 정보

networks 는 네트워크 이름을 적는다.

4. volumes - 볼륨 관련 정보

volumes 은 볼륨 이름을 적는다.

5. 파일 형식

  • 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

https://sseozytank.tistory.com/86

profile
쿵스보이(얼짱뮤지션)

0개의 댓글