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 | 여러 컨테이너 삭제 |