[Docker] "No space left on device" 에러

2022. 1. 21. 23:26개발공부/Docker Tutorial

728x90

docker "No space left on device" 에러

회사에서는 docker 컨테이너를 사용해 서버를 실행시키는데, 작업 도중 docker container가 실행된 즉시 exit 되는 오류가 있었습니다.

개발팀 방에 이슈를 올리고 시니어 개발자 분의 도움을 받아 docker-compose log를 확인해서 해결할 수 있었습니다. :)

즉, 문제해결 과정은 이런식으로 이루어져야 한다는 것을 되새겼습니다.

인프라 문제 발생 -> (내부 공유; 도움 요청) -> log 확인 -> google -> 해결

*(내부 공유; 도움요청)은 스킵가능

docker log 확인

  • docker-compose logs [options]
    • --tail="1"을 options로 사용해 모든 컨테이너의 마지막 n 라인 log를 확인해볼 수 있음
    • 하나의 컨테이너만 보고 싶다면 docker logs -f --tail 1000 [containerId] 명령어를 사용 (-f는 follow; log update 진행을 실시간 follow함)

docker No space left on device 해결방법

  • docker volume rm $(docker volume ls -qf dangling=true)
    • 컨테이너가 종료되면서 연결이 끊긴 더미 파일들이 존재하는데 그것을 dangling이라고 부릅니다.(연결된 container가 없는 volume)
  • 이 방법을 사용한다면 storage에 혹여나 중요한 data가 없는지 확인해보셔야 합니다.

docker volume이란

그렇담 docker volume이 정확히 하는 역할은 뭘까요?

docker volume은 도커 컨테이너들에 mounted 돼 도커 컨테이너가 실행될 때의 데이터를 보존하는 파일 시스템을 말합니다.

쉽게 말해 도커 컨테이너가 돌고 있을 때 발생되는 데이터들을 보관해주는 파일들인 것이죠.


참고자료