목적: 현장에서 바로 써먹을 수 있도록 필수 명령어와 디스크 부족 시 조치 절차를 단계별로 정리했습니다.
용어 정리는 각 섹션 하단 “개념 요약”에 포함했습니다.
docker compose).# 목록
docker ps # 실행 중 컨테이너
docker ps -a # 전체(정지 포함)
# 제어
docker start <name|id> # 시작
docker stop <name|id> # 중지
docker restart <name|id> # 재시작
docker rm <name|id> # 삭제(정지 상태 필요)
docker rm -f <name|id> # 강제 삭제(실행 중 포함)
# 내부 확인/접속
docker logs -f <name|id> # 실시간 로그
docker exec -it <name|id> bash # 쉘 접속
docker top <name|id> # 컨테이너 내부 프로세스
docker inspect <name|id> # 상세 정보(JSON)
# 보기 좋게 출력
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"
docker images # 이미지 목록
docker images -a # 중간 이미지 포함
docker images --digests # Digest(SHA256) 표시
docker pull repo:tag # 이미지 받기
docker rmi repo:tag # 이미지 삭제
docker rmi -f repo:tag # 강제 삭제
docker volume ls # 볼륨 목록
docker volume inspect <volume> # 상세(마운트 경로 등)
docker ps -a --filter volume=<volume> # 해당 볼륨을 쓰는 컨테이너 찾기
docker volume rm <volume> # 볼륨 삭제(참조 없어야 가능)
주의: 볼륨 삭제는 데이터 영구 삭제입니다. DB/Elasticsearch 등은 사전에 백업을 권장합니다.
docker network ls # 네트워크 목록
docker network inspect <network> # 상세
docker network rm <network> # 삭제
docker network prune # 미사용 네트워크 일괄 삭제
Compose로 컨테이너를 다시 올리면
networks:정의에 따라 자동 생성됩니다.
다만external: true네트워크는 미리docker network create <name>필요.
docker system df # 도커가 사용 중인 디스크 요약
docker system prune -f # 미사용 리소스 정리(이미지 제외)
docker system prune -a -f # 미사용 이미지 포함 정리
docker system prune -a -f --volumes # 미사용 볼륨까지(강력, 데이터 유실 주의)
docker compose up -d # 백그라운드 실행
docker compose down # 컨테이너/네트워크 종료·삭제
docker compose down -v # 위 + 연결 볼륨 삭제(데이터 유실 주의)
docker compose ps # Compose 관리 컨테이너 상태
docker compose logs -f # 전체 서비스 로그 추적
df -h / # 루트 파티션 사용량
docker system df # 도커 리소스별 사용량 요약
# 대용량 디렉터리 찾기
sudo du -ahx / | sort -rh | head -n 20
sudo du -sh /var/log/* | sort -rh | head
sudo du -sh /var/lib/docker/* | sort -rh | head
sudo du -sh /var/lib/docker/volumes/* | sort -rh | head
자주 보이는 원인
/var/lib/docker/volumes 내 데이터 볼륨 폭증(예: Elasticsearch 인덱스)/var/log 저널 로그 과다/tmp 임시파일 과다# /tmp 정리
sudo rm -rf /tmp/* /tmp/.[!.]* /tmp/..?* 2>/dev/null
# systemd 저널 로그 정리(둘 중 하나)
sudo journalctl --vacuum-time=7d
# 또는
sudo journalctl --vacuum-size=200M
# 패키지 캐시 정리
sudo dnf clean all # RHEL8/Rocky/Alma/CentOS8
# 또는
sudo yum clean all # CentOS7
# 또는
sudo apt-get clean # Ubuntu/Debian
# 도커 미사용 리소스 정리(점진적으로)
docker system prune -f
docker system prune -a -f
# 정말 급할 때만(미사용 볼륨까지)
docker system prune -a -f --volumes
예: apm-server_es_data(Elasticsearch 데이터) 용량 과다
docker ps -a --filter volume=apm-server_es_data
docker volume inspect apm-server_es_data
docker stop <container>
docker rm <container> # compose라면 해당 디렉터리에서 docker compose down
docker volume rm apm-server_es_data # 데이터 영구 삭제(주의)
sudo systemctl restart docker
docker volume rm apm-server_es_data
sudo systemctl stop docker
sudo rm -rf /var/lib/docker/volumes/apm-server_es_data/_data/*
sudo systemctl start docker
운영 데이터 유지가 필요하면 Kibana/ES에서 오래된 인덱스만 삭제하거나 ILM(보존 기간/롤오버) 정책을 적용해 자동 정리하는 것을 권장합니다.
GET _cat/indices?v
DELETE myindex-2025.07.01
# 컨테이너 상태 요약(보기 좋게)
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"
# 리소스 실시간 사용량
docker stats
# 디스크·도커 요약 리포트
df -h /
docker system df
docker compose up/down 기준 운용df -h, docker system df, 저널 로그 진공(journalctl --vacuum-*) 주기 실행df -h /, docker system df 로 현황 파악/tmp, 저널 로그, 패키지 캐시 정리docker system prune 단계적 실행du -sh /var/lib/docker/* 로 대형 원인 특정