메뉴 건너뛰기

SayClub.org

도커(Docker)

Docker - prune 도커 정리하기

미르다테 2025.11.28 08:36 조회 수 : 26

원문출처 : https://velog.io/@zuckerfrei/Docker-prune-%EB%8F%84%EC%BB%A4-%EC%A0%95%EB%A6%AC%ED%95%98%EA%B8%B0

 

 

요약

 

docker prune으로 사용하지 않는 도커 오브젝트 정리하여 서버 용량 확보하기

 


 

docker를 운영하다보면 서버 용량이 가득차거나 사용하지 않는 오브젝트를 정리하는 순간이 찾아온다.
그 때 docker prune 명령어로 정리할 수 있다.

이번에는 호스트 서버 디스크가 85%이상 사용중이었고,
컨테이너에서 마운트해놓은 경로의 로그 용량이 작아서 도커 오브젝트가 차지하는 용량을 정리해야겠다고 판단했다.
 

기본 명령어

docker [오브젝트|system] prune [옵션]

 

1. image

docker image prune [옵션]

사용하지 않는 도커 이미지는 생각보다 적은 용량을 차지하고 있었다.

[admin@dev-server ~]$ docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: temp-auth:latest
deleted: sha256:3688849f122dd66e41334e0999bf143de5475db21c9068d0d90052fd899c3561
untagged: traefik/whoami:latest
untagged: traefik/whoami@sha256:24829edb0dbaea072dabd7d902769168542403a8c78a6f743676af431166d7f0
deleted: sha256:420d3c2af3570ad1ced363bce5b284a4c662cf7ee178e261ae42b7d750d488a4
deleted: sha256:502d1ce781b144943b00641e3316410ab4c36af5f8006ad4e69319d9fdb70466
deleted: sha256:a580db4c8ae9a8088edf1b44c0829709a74fbd8a963975756755cb10565f292c
deleted: sha256:a93d348aa1e336f3bf37c03a3e185058d9b1f798274d5a7a79649bb270f6704b
deleted: sha256:c42099ad57ea09d7cedd586c8d1c36c19ebe59fb215822565cddc648697072bc
deleted: sha256:31380d0fa3861946af8270b66b6ad4f3ec5b068853013905cdd479b67300d291

Total reclaimed space: 6.508MB


2. container

 

생성되어있지만 실행 상태가 아닌 컨테이너를 정리하는 명령어이다.
stop상태의 컨테이너가 없어서 아무것도 지워지지 않았다.

[admin@dev-server ~]$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B

 

3. volume

 

도커 이미지가 차지하는 용량이 생각보다 적었기 때문에, 볼륨에 많은 로그 파일이 쌓여있을 것이라 예상했다.
그러나 도커 볼륨도 생각보다는 적은 용량을 차지하고 있었다.

[admin@dev-server~]$ docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
675aa728ebf407617b37514640f80fc442fbfe2b48d8aec1e5dc8ba0dcf3ebcb
a261d31b2926204f1f4a80aa8f1bc29097d7104037863c5f82d4361767d770af
d88f6e41f5664deb473a0b55fa860e147e8a6dbb55787f8ef4ce98407fcc9c1e
e4470a97b394fda2e901e5f5bdbe55044867e0bd91d7cddb1ff36951d4dbadef
06ad089b99a5f7c162319ebf87c5f0fda574d81ee631f3913666433598a6cef7
07f8b6cb138483ea17b852435d3d4415a4535cef31f2617474ab2d3ab324286a
78cc888226b3890af4cf118adb860bd2ea1a169d2d3d7f48953254505fa67ae6
ae6bb58b9fd590b6d4e53d364167aeb37af94d936277154080e614278960f74b
d7f0569feab7d89ac6eb3a40f792fabb378fb33799fdb90cde5c796ed229d548
348db8b94ed0a989687f48e88f17646f06dac000f3d8fdea9849cd71e187eed0
715c095ca128eca6ee84c3222a31d1d2850f7a58a4296ddf290a5c3fb04d27a2
5b1b7ea8792fb60b3d4b124bc91785b4f5d71a710c24aeba80f29ad608ebf131
a108b50dded47a43b9e5ff7f2b33f940035352c79aa4b6f04743250079b88f17
a806e782e33c86c1b879284c898d6d21a58a916d9a9ef6a463ef36ca17834eb7
c098f2b51fb59cbd53e061d7912827fa2a5ca57624f45403cc491f821a06b74e
cc27e3d6f7eb5d48f5190d412c6e925891adf62986e7cbf47b28c097a176fe0b
da2859538d459509c25316ea8e6b61a9e4ee754d3e74541b679ff02a4766a27e
de52ff6d2b8689ae2264e9bb68b2f12a77bc7da61ee6da1a1662a78492520201
78d27e695418a6e095ab9de5af47b14f3c6fefbd9805f5814c797db04f3b9d37

Total reclaimed space: 1.611GB

4. network

 

사용하지 않는 네트워크를 삭제한다.

[admin@dev-server ~]$ docker network prune
WARNING! This will remove all custom networks not used by at least one container.
Are you sure you want to continue? [y/N] y

5. system

 

위의 오브젝트를 하나씩 지우지 않고, 모두 한 번에 정리하는 명령어가 있다.

docker system prune

1) 중지된 모든 컨테이너
2) 사용하지 않는 네트워크
3) 댕글링? 이미지
4) 댕글링? 빌드 캐시

  • dangling images
    • <none>:<none> 처럼 이름도 태그도 달려있지 않은 이미지들
    • 이미지 빌드가 완료되었는데 기존 이미지 이름과 태그가 동일할 경우, 기존 이미지가 이렇게 바뀌더라
    • 딱히 쓰지도 않는데 용량만 잡아먹음
  • dangling build cache
    • 이전에 빌드할 때 캐싱해놓았던 이미지
    • 2번째부터는 빌드가 빠르게 완료되게 해주는 고마운 캐시
    • 그런데 잘 관리하지 않으면 서버를 터뜨리는 주범이다.

 

[admin@dev-server ~]$ docker system prune
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all dangling build cache

Are you sure you want to continue? [y/N] y
Deleted build cache objects:
iiys59fflwy6yjd7xj8l1hol9
v2rkgvwv2lxuvkpbslyxha71y
3nj0qlpu2n7wf39iqk5uwwawl
...
uuvgrhzgv3kxt0ebpwqdn910h

Total reclaimed space: 28.73GB

나머지 오브젝트는 모두 위에서 하나씩 개별적으로 삭제명령을 내려봤으니 all dangling build cache만 남은 것이고,
이 용량이 29GB 가까이 된다는 것을 확인할 수 있었다.

이중화된 두 개의 서버 중 한 서버에서 빌드 캐시를 삭제한 후 배포를 진행했다.
빌드 캐시 존재 유무가 다른 두 서버 간의 빌드 속도 차이를 확인해보기 위함이었다.

1번 서버는 빌드 캐시를 모두 삭제했기 때문에 빌드가 6분 이상 소요되었고,
2번 서버는 빌드 캐시를 사용하기 때문에 빌드가 1분만에 성공한 것을 확인했다.


서버 용량 관리 및 도커 관리를 위해 주기적으로 docker prune명령을 실행하려 한다.
실행 후에는 다시 빌드를 호출해서 캐시를 만들어 놓아야 다음 배포시 빠른 빌드가 가능할 것이다.

번호 제목 글쓴이 날짜 조회 수
» Docker - prune 도커 정리하기 미르다테 2025.11.28 26
54 도커(Docker)로 Tugtainer 설치하기(Watchtower 대체) 미르다테 2025.11.18 36
53 도커(Docker)로 Zoraxy 설치하기 미르다테 2025.07.16 140
52 도커(Docker)로 Syslog-ng 설치하기 미르다테 2025.07.07 160
51 도커(Docker)로 Guacamole 설치하기 file 미르다테 2025.06.12 157
50 도커(Docker)로 Drupal CMS 설치하기 미르다테 2025.05.23 167
49 도커(Docker)로 Arachni UI Web(웹스캐너) 설치하기 미르다테 2025.05.14 195
48 도커(Docker)로 diun(Docker Image Update Notifier) 구축하기 미르다테 2025.04.18 178
47 도커(Docker)로 Minio 설치하기 미르다테 2025.04.17 211
46 도커(Docker)로 Rocky Linux 9.5에 Squid Proxy 설치하기 미르다테 2025.04.15 156
45 도커(Docker)로 Zabbix 서버 구축하기 미르다테 2025.04.15 127
44 vaultwarden 버전 확인하기 미르다테 2025.02.10 127
43 Docker-compose up -d 시 실행 오류 해결 방법 미르다테 2024.12.30 151
42 Squid를 Docker 컨테이너로 실행하는 방법 미르다테 2024.12.30 124
41 도커(Docker)로 컨테이너 Log 확인툴(Dozzle) 설치하기 미르다테 2024.12.30 127
40 도커(Docker)로 It-Tools 설치하기 미르다테 2024.12.30 188
39 도커(Docker) YAML 문법 검사 사이트 미르다테 2024.12.30 107
38 도커(Docker)로 Stirling-PDF 서버 설치하기 미르다테 2024.12.30 340
37 도커(Docker)로 이윰빌더(Eyoom)+그누보드 설치하기(한국형 게시판 커뮤니티) file 미르다테 2024.12.30 298
36 도커 컨테이너 내의 파일 가져오기, 로컬 파일 도커 컨테이너로 파일 넣기 미르다테 2024.12.30 190
위로