AWS EC2 위에서 Docker 빌드 중 아래와 같은 오류가 발생하면서 빌드가 중단되었다.
$ df -hT
위 명령어로 용량을 확인하면, 7.7G 중 7.7G 를 모두 사용하였음을 확인할 수 있다.
이는 AWS EC2 에서 제공하는 용량을 모두 사용하였기 때문에 발생한 오류이다.
따라서, 사용하지 않는 Docker 컨테이너,이미지 파일,볼륨 및 네트워크 등을 모두 제거하여 용량을 확보할 수도 있고,
AWS EC2 볼륨 크기를 수정하고 파일 시스템 용량을 확장하여 해결할 수도 있다.
# 특정 Docker 컨테이너 중단
$ docker stop __CONTAINER ID__
# 실행중인 모든 Docker 컨테이너 중단
$ docker stop $(docker ps -q)
# 특정 Docker 컨테이너 삭제
$ docker rm __CONTAINER ID__
# 모든 Docker 컨테이너 삭제
$ docker rm $(docker ps -a -q)
# 특정 Docker 이미지 삭제
$ docker rmi __IMAGE ID__
# 모든 Docker 이미지 삭제
$ docker rmi $(docker images -q)
# 사용하지 않는 모든 컨테이너, 이미지, 볼륨, 네트워크, 캐싱 삭제
$ docker system prune -a --volumes
하지만 위와 같은 방식은 영구적인 해결방법이 될 수 없으며,
어떠한 Docker 파일도 제거할 수 있는 상황이 아니라면 불가능하다.
따라서, 아래와 같이 AWS EC2 의 용량을 수정한 뒤, 파일 시스템의 용량을 증가시키는 방법을 사용할 수 있다.
📌 AWS > 인스턴스 선택 > 스토리지 이동
하단의 볼륨 크기(GiB) 가 8 로 설정되어 있을 것이다.
📌 볼륨 선택 > 작업 > 볼륨 수정 이동
📌 볼륨 세부 정보 > 크기(GiB) 8 -> 16 변경
📌 터미널 >
lsblk
> 용량 확인
$ lsblk
이제 터미널로 돌아와 lsblk
명령을 통해 수정된 볼륨 크기를 확인한다.
루트 볼륨인 /dev/xvda
가 8GB 에서 16GB 로 수정된 것을 확인할 수 있다.
하지만 전체 볼륨 크기만 증가한 것이므로, 내부 파티션인 /dev/xvda1
의 크기를 증가시켜야 한다.
📌
sudo growpart
> 내부 파티션 크기 증가
아래 명령어를 실행하여 내부 파티션의 크기를 증가시킬 수 있다.
$ sudo growpart __volume__ __partition_num__
이제 내부 파티션인 /dev/xvda1
의 크기가 16GB 로 증가한 것을 확인할 수 있다.
📌
sudo resize2fs
> 파일 시스템에 수정된 내부 파티션의 크기 적용
마지막으로, 사용하는 파일시스템에 수정된 파티션의 크기를 적용시켜주면 된다.
$ sudo resize2fs __partition__
다시 df -hT
명령으로 용량을 확인하면 다음과 같다.
/dev/xvda1
의 크기가 16GB 로 증가한 것을 확인할 수 있으며, 다시 빌드를 진행하면 정상적으로 빌드가 이루어질 것이다.