AWS EC2 Docker 용량
이번에 젠킨스,도커로 배포 자동화를 하게 되면서, 깃허브에 푸시하면 도커가 기존에 존재하는 컨테이너와 이미지를 삭제하고 새로운 컨테이너와 이미지를 생성하게 만들어놨습니다.
그런데 푸시를 하면 할수록 메모리의 용량이 너무 빠르게 늘어나는 바람에 이상하다는 생각이 들었습니다.
그래서 용량을 확인해 봤습니다.
현재 사용 중인 용량은 16GB

다음으로 저 16GB가 어디에서 사용되는지 확인해 보았습니다.
명령어로 확인하는 방법도 있지만 UI를 조금 더 쉽게 보기 위하여 ncdu를 설치해 보았습니다.
//설치
sudo apt-get install ncdu
// 용량 보기
ncdu /
그런데 확인해 보면 아래 합쳐도 8GB 정도밖에 안됩니다.

뭔가 도커의 문제인 거 같은데 알 수가 없네요.
아래 명령어로 확인해보나 포테이너로 확인해보나, 눈에 보이는 것은 용량을 차지할게 없었습니다.
Docker ps

이번에는 아래 명령어로 확인해 봤습니다.
sudo du -sh /var/lib/docker // 도커 이미지와 컨테이너
sudo du -sh /var/lib/docker/volumes // 도커 볼륨
잡았다 요놈
아까 8GB + 8GB 하면 16GB 얼추 맞아 떨어지네요.
근데 뭐지 이놈은? 왜 메모리 용량 볼때는 안 나오는 건지..

직접 폴더로 이동하려고 root로 접속했습니다.
sudo -i // root로 접속
sudo du -sh * // 현재 폴더 용량보기
overlay2가 용량을 다 먹고있네요. 아까 이미지 1.4GB도 여기안에 있는 건지..?

왠지 느낌이 이제껏 생성된 이미지와 컨테이너가 삭제가 안된 느낌이네요. 현재 돌아가고 있는 이미지, 컨테이너를 제외하고는 다 삭제하면 될 거 같아요.
검색해 보니 overlay2폴더는 Docker에서 사용되는 파일 시스템 계층을 저장하는 곳이라네요.

젠킨스에서 이미지를 삭제하게끔 해놨었는데 안되고 있었나 봅니다.
그런데 의문인 건 docker ps 명령어나 포테이너에서 확인했을 때는 왜 나오지 않는 걸까..?
-> ChatGPT: 현재 실행 중인 컨테이너만 보여줌, 중지되거나 삭제된 컨테이너는 포함하지 않는다.
stage('Cleanup Old Images') {
steps {
script {
// 사용하지 않는 Docker 이미지 정리
sh "docker image prune -f"
}
}
}
중지된 컨테이너 삭제
docker container prune
사용하지 않는 이미지 삭제
docker image prune
그러나 짜증나게 또 삭제가 되지 않습니다.

아래 명령어로 하니까 삭제됩니다.
docker system prune -a
7GB가 삭제됐다. 시원하네.

그런데 이 명령어로하니까 사용중이던 컨테이너와 이미지도 지워졌습니다.
그래서 -a 옵션을 안준건데, 사용안하는것도 안지워지면 뭐 어쩌라구 ㅇㅅㅇ
일단 이미지는 다시 생성하였습니다.
삭제 명령어에 대해서는 조금 더 알아보고 수정하겠습니다~
'IT > AWS' 카테고리의 다른 글
AWS 프리티어 만료 후 계속 사용하는 법 (1) | 2024.10.19 |
---|---|
AWS 서버 중단 시 커스텀 화면 보여주기 (1) | 2024.10.18 |
AWS Docker 설치 (0) | 2024.09.24 |
AWS 과금 방지 (0) | 2024.09.20 |
[AWS] https 인증 만료시 해결방법 (1) | 2024.08.18 |