Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
관리 메뉴

ㅇ.ㅇ

[Docker] 도커 시스템 공간 확보 본문

Docker

[Docker] 도커 시스템 공간 확보

yun_ 2024. 11. 15. 14:50
반응형

 

 

Docker 임시 파일 및 빌드 캐시 안전하게 정리하는 방법

Docker에서 작업을 지속하면서 tmp 파일이나 빌드 캐시가 쌓여 용량을 차지하거나 비정상적인 데이터를 포함할 수 있다. 우선 나 같은 경우에는 tmp쪽에 용량이 없다는 에러 메시지가 나와서 용량이 큰 이미지를 pull 받을 수 없었다. 그럼 이러한 파일들을 정리하고, 시스템 공간을 확보하는 방법을 알아보자.

 

1. 사용하지 않는 컨테이너, 네트워크, 볼륨, 이미지 정리

아래 명령어는 모든 불필요한 리소스를 삭제할 수 있다.

-- (1) 사용하지 않는 컨테이너 정리
docker container prune
-- 중지된 상태의 모든 컨테이너를 삭제 


-- (2) 사용하지 않는 네트워크 정리
docker network prune
-- 사용되지 않는 모든 네트워크를 삭제 


-- (3) 사용하지 않는 볼륨 정리
docker volume prune
-- 어떤 컨테이너에서도 사용되지 않는 모든 볼륨을 삭제


-- (4) 사용하지 않는 이미지 정리
docker image prune
-- 태그가 없는 중간 이미지(다른 이미지가 의존하지 않는 이미지)를 삭제


-- (5) 사용하지 않는 모든 리소스를 한 번에 정리
docker system prune
-- 여기에서 리소스는 중지된 컨테이너, 사용되지 않는 네트워크, dangling 이미지, 볼륨을 의미
  • 주의 : 필요한 이미지나 볼륨도 삭제될 수 있으니 확인 또 확인을 한 후 정리해야한다. 

개인적으로, 이렇게 prune으로 지우는 것보다는 ls 명령어로 목록을 확인 후 불필요한 데이터들을 하나씩 삭제하는 게 안전하다고 생각한다. 그런데 너무 많은.. 너무 출처를 모르는 데이터가 많이 쌓였다면 한번씩 중요 데이터들은 백업하고 정리하는 것도 좋을 것이다. 

 

2. Docker 임시 파일 경로에서 수동 삭제

Docker는 일반적으로 Linux 시스템의 /var/lib/docker/tmp 디렉터리에 임시 파일을 저장한다. 그러므로 이 디렉터리의 비정상 파일을 직접 확인하고 삭제할 수 있다.

sudo rm -rf /var/lib/docker/tmp/*
  • 주의 : Docker 엔진이 실행 중인 상태에서 삭제 작업을 수행하면 작업 중단이 발생할 수 있으므로 중요한 작업이 없는 상태에서 실행해야 한다.

/var/lib/docker/tmp/ 디렉터리 외에도 시스템별 차이로 다른 경로가 있을 수 있으니, docker info 명령어로 Docker 데이터 경로를 확인하는 방법도 있다.

 

3. Docker 빌드 캐시 정리

Docker 빌드 캐시는 이미지 빌드 중 중간 결과물을 캐싱하여 향후 빌드 속도를 높이기 위해 사용된다. 그래서 빌드 캐시를 정리하여 디스크 공간을 확보 할 수 있다.

docker builder prune

--all: 사용 중인 캐시까지 포함해 모든 빌드 캐시를 삭제
docker builder prune --all

--filter: 특정 조건(예: until=24h)에 따라 캐시를 삭제
docker builder prune --filter "until=24h"

--force: 확인 절차 없이 즉시 삭제를 진행
docker builder prune --force
 

시스템 디스크 사용량 확인

docker system df
 

이 명령어는 현재 Docker 시스템에서 사용 중인 디스크 공간을 한눈에 보여준다. 이미지, 컨테이너, 로컬 볼륨 및 캐시된 빌드 데이터의 디스크 사용량을 개별적으로 보여주고, 각각 얼마나 많은 공간을 차지하는지 확인할 수 있다.

(예시)

 

  • TOTAL : 자원의 총 개수
  • ACTIVE : 현재 사용 중인 자원 개수
  • SIZE : 자원이 차지하고 있는 총 디스크 공간
  • RECLAIMABLE : docker system prune을 통해 삭제할 수 있는 디스크 공간 - dangling이 차지하는 용량

또한 --verbose 옵션을 사용하면 순서대로 모든 이미지, 컨테이너, 볼륨, 캐시 순으로 자세하게 ID, 이름, 사용량, 상태 등을 알 수 있다. 불필요한 자원을 식별하고 바로바로 정리하는데 유용하다. 

 

반응형