Docker 용량 확인 및 관리

Karoid·2022년 1월 3일
5

클라우드 컴퓨팅

목록 보기
2/3
post-custom-banner

OS Level (Debian 계열)

  • OS 전체 용량 확인
    df -h
  • 파일별 용량 큰순서로
    sudo du -smx * | sort -nr
  • 파일별 용량 읽을 수 있게
    sudo du -shx * | sort -nr

Docker 관련

아래 명령어는 전부 현재 실행되고 있지 않은 이미지, 컨테이너, 캐시 등을 삭제하는 명령어입니다.

용량 확인

  • 전체 도커 용량 확인 (요약본)
    docker system df
  • 컨테이너별 용량 확인
    docker ps --size --format "table {{.ID}}\t{{.Image}}\t{{.Size}}"
  • 도커 용량 확인 자세히
    docker system df --verbose
  • 도커 볼륨 실제 사용 용량 확인
    docker system df 명령어는 virtual 용량만 알려준다. 다음 명령어로 실제 사용량을 알 수 있다.
    docker volume ls -q | xargs -I {} sh -c 'echo "{}\t$(sudo du -sh $(docker volume inspect --format "{{ .Mountpoint }}" {}) | cut -f1)"' | column -t

Docker 컨테이너, 이미지, 캐시

  • 도커 미사용 컨테이너 삭제
    docker container prune
  • 도커 미사용 이미지 삭제
    docker image prune
  • 도커 미사용 볼륨 삭제
    docker volume prune
  • 도커 미사용 오브젝트 전체 삭제 (로그는 삭제 안됨)
    docker system prune -a

Docker 로그

  • 도커 로그 용량 확인
    sudo du -h $(docker inspect --format='{{.LogPath}}' $(docker ps -qa))
  • 도커 로그 전체 삭제
    sudo sh -c "truncate -s 0 /var/lib/docker/containers/*/*-json.log"
  • compose 파일을 이용한 도커 로그 용량 제한 방법
version: '3.2'
services:
  logstash:
    image: docker.elastic.co/logstash/logstash:7.8.0
    command:  --config.reload.automatic  
    user: savio:savio
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-size: "2048m"
    ports:
      - "9600:9600" 

공식 문서

Docker Loki 플러그인 로그 설정

grafana/loki-docker-driver를 설치해서 docker logger로 사용하고 있다면 앞선 방법은 먹히지 않을 것이다. 이럴 때는 다음 명령어를 사용해야 한다.

  • 도커 Loki 플러그인 로그 확인
    먼저 sudo su로 관리자 계정으로 바꿔준 후
    sudo du -h /var/lib/docker/plugins/*/rootfs/var/log/docker/*/json.log

  • 도커 로그 전체 삭제
    truncate -s 0 /var/lib/docker/plugins/*/rootfs/var/log/docker/*/json.log

  • daemon.json 파일을 이용한 도커 로그 용량 제한 방법
    여기에 나온 설정처럼 max-size와 max-file을 제한해놓아야 한다.

profile
Backend. Rails, MongoDB 강좌를 운영하고 있습니다
post-custom-banner

1개의 댓글

comment-user-thumbnail
2022년 12월 8일

좋은 정보 감사합니다.

답글 달기