카테고리 없음

[Docker] Error response from daemon : no space left on device 에러 해결하기

soowitty 2024. 6. 2. 01:20

 

 

 

github action, Docker hub를 이용하여 CI/CD를 구현하였다. 그런데 잘 되던 배포가 어느날 갑자기 에러가 발생했다.

 

error log를 보니, 다음과 같은 메세지를 확인할 수 있었다.

Error response from daemon : no space left on device

 

용량이 부족하다는 것이다.

 

이는 대부분 이전에 생성된 도커 이미지들이 계속해서 쌓였기 때문이다. 

 

1. 도커 이미지 확인

아래 명령어로 확인해보면, 매우 많은 이미지들이 있는 것을 확인할 수 있을 것이다.

sudo docker images

 

TAG가 latest인 것이 현재 배포한 도커 이미지이고, <none> 인 것들은 모두 이전에 배포했을 때의 도커 이미지이다. 즉, 이것들은 모두 현재 사용하지 않는 이미지인 것이다. 따라서, 사용하지 않는 것들을 모두 삭제해주어야 한다.

 

2. 사용하지 않는 도커이미지 삭제

sudo su
docker images -f "dangling=true" -q | xargs docker rmi -f

 

 

이렇게 하면 더이상 에러가 발생하지 않는다.

 

👩‍💻 요약

Error response from daemon : no space left on device

 

위의 에러 발생 시, 아래 명령어 실행 

sudo su
docker images
docker rmi $(docker images -q --filter "dangling=true")

 

 

 

❓ 미해결 issue

배포될 때, 사용하지 않는 도커 이미지들을 삭제하도록 github action의 workflow에 다음과 같은 코드를 추가했다. 그런데, 실행이 제대로 되지 않는 것 같다 🥲🥲 왜일까,, 알게되면 수정하겠다..

- name: Delete untagged Docker images
        run: |
          images=$(docker images -f "dangling=true" -q)
          for image_id in $images; do
            docker rmi -f $image_id
          done