본문으로 건너뛰기

Docker 기초

PCS의 모든 앱은 Docker 컨테이너 내에서 실행됩니다. PCS를 사용하는 데 Docker를 이해할 필요는 없습니다 — CasaOS가 모든 것을 처리합니다. 하지만 더 많은 제어를 원하는 경우 기본 사항을 알면 도움이 됩니다.

핵심 개념

컨테이너

컨테이너는 단일 애플리케이션을 실행하는 경량의 격리된 환경입니다. 앱이 실행에 필요한 모든 것을 포함하는 미니 가상 머신으로 생각하세요.

  • PCS의 각 앱은 자체 컨테이너에서 실행됨
  • 컨테이너는 서로 격리됨 — 한 앱의 문제가 다른 앱에 영향을 주지 않음
  • 컨테이너는 호스트 시스템에 영향 없이 시작, 중지, 재시작, 제거 가능

이미지

이미지는 컨테이너의 설계도입니다. CasaOS를 통해 앱을 설치하면 앱의 Docker 이미지를 다운로드하고 그것으로 컨테이너를 만듭니다.

볼륨

볼륨은 컨테이너가 영구 데이터를 저장하는 방법입니다. 볼륨 없이는 컨테이너 재시작 시 모든 데이터가 손실됩니다.

  • PCS에서 앱 데이터는 /DATA/AppData/<앱-이름>/에 저장
  • 이 디렉토리가 컨테이너 내부에 "마운트"되어 앱이 데이터를 읽고 쓸 수 있음
  • 컨테이너가 중지되거나 제거되어도 볼륨은 유지됨

Docker Compose

Docker Compose는 멀티 컨테이너 애플리케이션을 정의하는 도구입니다. 대부분의 PCS 앱은 다음을 설명하는 docker-compose.yml 파일을 사용합니다:

  • 사용할 이미지, 노출할 포트, 마운트할 볼륨, 설정할 환경 변수, 컨테이너 간 의존성

필수 명령어

관리자 패널 → 터미널에서 연결하여 이 명령어를 실행하세요.

컨테이너 확인

# 실행 중인 모든 컨테이너 목록
docker ps

# 모든 컨테이너 (중지된 것 포함)
docker ps -a

# 컨테이너 이름과 상태만 표시
docker ps --format "table {{.Names}}\t{{.Status}}"

컨테이너 수명 주기

# 컨테이너 중지
docker stop <컨테이너-이름>

# 중지된 컨테이너 시작
docker start <컨테이너-이름>

# 컨테이너 재시작
docker restart <컨테이너-이름>

# 컨테이너 세부 정보 확인
docker inspect <컨테이너-이름>

로그 확인

로그는 디버깅에 필수적입니다:

# 마지막 100줄 로그 보기
docker logs <컨테이너-이름> --tail 100

# 실시간 로그 팔로우 (Ctrl+C로 중지)
docker logs <컨테이너-이름> -f

# 타임스탬프와 함께 로그 표시
docker logs <컨테이너-이름> --tail 50 -t

# 최근 1시간 로그
docker logs <컨테이너-이름> --since 1h

리소스 관리

# 모든 컨테이너의 리소스 사용량 보기
docker stats

# Docker가 사용하는 디스크 공간 확인
docker system df

# 사용하지 않는 Docker 리소스 정리
docker system prune

컨테이너 내부에서 명령어 실행

# 컨테이너 내부에 셸 열기
docker exec -it <컨테이너-이름> /bin/bash

# bash가 없는 경우 (Alpine 기반 이미지)
docker exec -it <컨테이너-이름> /bin/sh

# 단일 명령어 실행
docker exec <컨테이너-이름> ls /app

Docker Compose 명령어

# 앱의 디렉토리로 이동
cd /DATA/AppData/<앱-이름>

# 앱 시작 (백그라운드)
docker compose up -d

# 앱 중지
docker compose down

# 앱 재시작
docker compose restart

# 로그 보기
docker compose logs --tail 50

# 최신 이미지 다운로드 후 재시작
docker compose pull && docker compose up -d

Docker vs CasaOS

작업CasaOSDocker CLI
앱 설치앱 스토어 → 설치docker compose up -d
앱 시작/중지마우스 오른쪽 클릭 → 시작/중지docker start/stop
앱 업데이트마우스 오른쪽 클릭 → 업데이트docker compose pull && up -d
로그 보기사용 불가docker logs
셸 접근사용 불가docker exec -it ... /bin/bash
리소스 사용량기본 위젯docker stats
정리사용 불가docker system prune

대부분의 사용자에게는 CasaOS가 충분합니다. Docker CLI는 더 많은 가시성과 제어가 필요한 파워 유저를 위한 것입니다.

경고

데이터를 제거하는 Docker 명령어(docker rm, docker volume rm, docker system prune --volumes)는 주의하세요. 파괴적인 명령어 실행 전에 항상 관리자 패널 → 앱에서 백업을 생성하세요.

Docker 명령어로 문제가 생기면 보통 백업에서 복원하거나 CasaOS를 통해 앱을 재설치하여 복구할 수 있습니다. /DATA/AppData/의 데이터는 직접 삭제하지 않는 한 유지됩니다.