> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baeum.ai.kr/llms.txt
> Use this file to discover all available pages before exploring further.

# Docker Container

Docker Compose를 사용하여 각종 서비스를 설치하고 실행하는 가이드입니다.

## Docker란?

**Docker**는 애플리케이션을 **컨테이너**라는 독립된 환경에서 실행할 수 있게 해주는 도구입니다.

일반적으로 PostgreSQL, Redis 같은 서비스를 설치하려면 OS에 직접 설치하고 설정 파일을 수정해야 합니다. Docker를 사용하면 이런 과정 없이 명령어 한 줄로 서비스를 실행할 수 있습니다.

### 컨테이너 (Container)

컨테이너는 애플리케이션과 실행에 필요한 모든 것(라이브러리, 설정 파일 등)을 하나로 묶은 실행 단위입니다.

* 호스트 OS와 격리되어 실행되므로 서로 영향을 주지 않습니다
* 같은 서비스를 여러 개 동시에 실행할 수 있습니다
* 삭제하고 다시 만들어도 동일한 환경이 보장됩니다

### Docker Compose

여러 컨테이너를 한 번에 정의하고 실행할 수 있는 도구입니다. `docker-compose.yml` 파일에 서비스 구성을 작성하고, `docker compose up -d` 명령어로 한 번에 실행합니다.

예를 들어, Langfuse를 실행하려면 Langfuse 서버, PostgreSQL, Redis, ClickHouse 등 여러 서비스가 함께 필요합니다. Docker Compose를 사용하면 이 모든 서비스를 하나의 파일로 관리하고 한 번에 실행할 수 있습니다.

## 사전 준비

Docker Container를 실행하려면 **Docker**가 설치되어 있어야 합니다.

<Note>
  Windows 환경에서는 [Rancher Desktop](/setup/windows/rancher-desktop)을 설치하면 Docker와 Docker Compose가 함께 설치됩니다.
</Note>

Docker가 정상적으로 설치되었는지 확인합니다.

```bash theme={null}
docker --version
docker compose version
```

## 사용 방법

각 서비스 페이지에 있는 `docker-compose.yml` 파일을 복사하여 원하는 디렉토리에 저장한 뒤, 아래 명령어로 실행합니다.

```bash theme={null}
# 컨테이너 실행 (백그라운드)
docker compose up -d

# 실행 상태 확인
docker compose ps

# 로그 확인
docker compose logs -f

# 컨테이너 중지
docker compose down
```

<Warning>
  `docker compose down`은 컨테이너만 삭제합니다. 데이터는 Docker 볼륨에 저장되어 유지됩니다. 데이터까지 삭제하려면 `docker compose down -v` 옵션을 사용합니다.
</Warning>

## 서비스 목록

### 데이터베이스 / 검색엔진

<CardGroup cols={4}>
  <Card title="PostgreSQL" icon="database" href="/stacks/postgresql">
    관계형 데이터베이스
  </Card>

  <Card title="Redis" icon="bolt" href="/stacks/redis">
    인메모리 캐시
  </Card>

  <Card title="OpenSearch" icon="magnifying-glass" href="/stacks/opensearch">
    전문 검색 엔진
  </Card>

  <Card title="Qdrant" icon="vector-square" href="/stacks/qdrant">
    벡터 데이터베이스
  </Card>

  <Card title="Neo4j" icon="circle-nodes" href="/stacks/neo4j">
    그래프 데이터베이스
  </Card>

  <Card title="Milvus" icon="vector-square" href="/stacks/milvus">
    대규모 벡터 검색
  </Card>

  <Card title="Weaviate" icon="magnifying-glass" href="/stacks/weaviate">
    하이브리드 검색
  </Card>

  <Card title="ChromaDB" icon="cube" href="/stacks/chromadb">
    경량 벡터 DB
  </Card>
</CardGroup>

### LLM 서빙 / 추론

<CardGroup cols={4}>
  <Card title="vLLM" icon="microchip" href="/stacks/vllm">
    고성능 LLM 추론
  </Card>

  <Card title="TGI" icon="microchip" href="/stacks/tgi">
    HuggingFace LLM 서빙
  </Card>

  <Card title="TEI" icon="microchip" href="/stacks/tei">
    HuggingFace 임베딩 서빙
  </Card>

  <Card title="LocalAI" icon="microchip" href="/stacks/localai">
    OpenAI 호환 로컬 서버
  </Card>
</CardGroup>

### AI / 워크플로우 플랫폼

<CardGroup cols={4}>
  <Card title="Dify" icon="wand-magic-sparkles" href="/stacks/dify">
    LLM 앱 개발 플랫폼
  </Card>

  <Card title="Open WebUI" icon="comments" href="/stacks/open-webui">
    ChatGPT 스타일 웹 UI
  </Card>

  <Card title="Langflow" icon="diagram-project" href="/stacks/langflow">
    비주얼 AI 빌더
  </Card>

  <Card title="Flowise" icon="diagram-project" href="/stacks/flowise">
    비주얼 LLM 빌더
  </Card>

  <Card title="AnythingLLM" icon="comments" href="/stacks/anythingllm">
    올인원 RAG 챗봇
  </Card>

  <Card title="n8n" icon="gears" href="/stacks/n8n">
    워크플로우 자동화
  </Card>
</CardGroup>

### 실험 관리 / MLOps / LLMOps

<CardGroup cols={4}>
  <Card title="Langfuse" icon="chart-line" href="/stacks/langfuse">
    LLM Observability
  </Card>

  <Card title="MLflow" icon="flask" href="/stacks/mlflow">
    머신러닝 실험 추적
  </Card>

  <Card title="ClearML" icon="flask" href="/stacks/clearml">
    MLOps 플랫폼
  </Card>

  <Card title="JupyterHub" icon="notebook" href="/stacks/jupyterhub">
    멀티 사용자 노트북
  </Card>

  <Card title="Trackio" icon="chart-line" href="/stacks/trackio">
    실험/메트릭 추적
  </Card>
</CardGroup>

### 데이터 라벨링

<CardGroup cols={2}>
  <Card title="Label Studio" icon="tag" href="/stacks/label-studio">
    범용 데이터 라벨링
  </Card>

  <Card title="Argilla" icon="tag" href="/stacks/argilla">
    LLM/NLP 데이터 피드백
  </Card>
</CardGroup>

### 모델 서빙 / 배포

<CardGroup cols={2}>
  <Card title="Triton" icon="server" href="/stacks/triton">
    NVIDIA 멀티 프레임워크 추론
  </Card>

  <Card title="BentoML" icon="box" href="/stacks/bentoml">
    머신러닝 모델 패키징 및 서빙
  </Card>
</CardGroup>

## 설치 점검 목록

* `docker compose up -d` 후 `docker compose ps`로 컨테이너 상태를 확인했습니다.
* 기본 포트/계정/비밀번호를 문서대로 점검했습니다.
* 운영용으로 사용할 때 기본 비밀번호/시크릿 값을 변경했습니다.
* 장애 분석을 위해 `docker compose logs -f` 확인 방법을 숙지했습니다.

## 문제 해결 가이드

* 컨테이너가 실행되지 않으면 `docker compose logs -f`로 오류 원인을 먼저 확인합니다.
* 포트 충돌이 나면 기존 프로세스를 종료하거나 포트 매핑 값을 변경합니다.
* 이미지 pull 실패 시 네트워크 연결 및 레지스트리 접근 권한을 확인합니다.
* 설정 변경 후 문제가 지속되면 `docker compose down` 후 다시 `up -d`로 재기동합니다.

## 관련 문서

<CardGroup cols={2}>
  <Card title="Setup 홈" icon="house" href="/setup/index">
    운영체제별 설치 흐름을 다시 확인합니다.
  </Card>

  <Card title="다음: PostgreSQL" icon="arrow-right" href="/stacks/postgresql">
    다음 설치 단계를 이어서 진행합니다.
  </Card>
</CardGroup>
