Docker

Docker Compose 로 여러 컨테이너 운용 관리

worldcenter 2025. 3. 6. 16:58

Docker Compose 란

여러 컨테이너를 모아서 관리하기 위한 툴입니다. Docker Compose는 'docker-compose.yml' 라는 파일에 컨테이너의 구성 정보를 정의함으로써 동일 호스트 상의 여러 컨테이너를 일괄적으로 관리할 수 있습니다.

Docker Compose는 여러 호스트 상의 컨테이너를 관리하는 것이 아닌 단일 호스트 상의 컨테이너를 관리하기 위해 사용합니다.

그 이유는 Docker Compose는 내부적으로 bridge 네트워크를 사용합니다. 이 네트워크는 단일 호스트에서만 동작하기 때문에 서로 다른 서버에 있는 컨테이너는 기본적으로 통신할 수 없습니다.

services:
  web:
    build: .
    ports:
      - "8000:5000"
    develop:
      watch:
        - action: sync
          path: .
          target: /code
    depends_on:
      - redis
  redis:
    image: "redis:alpine"

 

 

docker-compose.yml 뜯어보기

# 베이스 이미지 지정
services:
  web:
    image: ubuntu

# Dockerfile로 빌드한 이미지를 베이스 이미지로 사용하는 경우
services:
  web:
    build: .
# 또는
services:
  web:
    build:
      context: /data # Dockerfile 파일 경로
      dockerfile: Dockerfile-alternate # 임의의 이름으로 된 Dockerfile을 빌드하는 경우
    command: /bin/bash
    entrypoint:
      - php
      - -d
      - memory_limit=-1
    networks:
      - app_network
    ports:
      - "80:8080"
    environment:
     - HOGE=fuga
     - FOO=hello
    container_name: web-container
    labels:
      - "com.nuri.department=Finance"
    depends_on:
      - db
      - redis
  redis:
    image: redis
  mysql:
    image: mysql
    volumes:
      - mysql_data:/var/lib/mysql

 

 

Docker Compose의 기본 명령

서브 명령 설명
up 여러 컨테이너 생성/시작
ps 컨테이너 목록 표시
logs 컨테이너 로그 출력
run 컨테이너 실행
start 컨테이너 시작
stop 컨테이너 정지
restart 컨테이너 재시작
pause 컨테이너 중지
unpause 컨테이너 재개
port 공개 포트 번호 표시
config 구성 확인
kill 실행 중인 컨테이너 강제 정지
rm 컨테이너 삭제
down 여러 컨테이너 삭제