Chrome의 headless_shell을 Docker로 컴파일하다 보니 컴파일하는 도중 No space left on device
라는 오류가 발생하면서 이미지 빌드가 멈춰버렸다. 맥북의 디스크 용량은 충분히 남아있어서 오류의 원인을 알기가 어려웠다. docker volume ls -qf dangling=true
같은 명령어로 Volume도 확인해 봤는데 남아있는 볼륨도 존재하지 않았다.
검색을 하다가 Docker Community Forums에서 비슷한 글을 발견했다.
정리하자면 이는 Docker의 이슈라기보다는 Docker for Mac의 이슈다. 내부 구조를 자세히 알진 못하지만, Docker for Mac에서 사용할 디스크로 sparse image를 만들어서 사용하고 있다. sparse image는 macOS의 디스크 이미지 파일로 별도의 공간을 만들어서 여기에 용량을 할당해서 사용할 수 있다. 원래 sparse image는 용량을 동적으로 늘려서 사용할 수 있지만 윗글에 따르면 현재 Docker for mac은 여기에 64GB를 할당하고 이를 동적으로 늘리거나 하진 않고 있다.
이 이미지 파일은 ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
에 있다. 내가 no space left on device
오류를 보았을 때 이 용량을 확인해 보니 이미 60G였다.
$ ls -lah ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
-rw-r--r-- 1 outsider staff 60G 5 31 03:58 /Users/outsider/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
이 파일을 지우고 Docker 데몬을 재시작하면 알아서 다시 만들기 때문에 필요한 경우 이 파일을 제거해도 된다. 대신 로컬에 이미 받아놓은 Docker 이미지나 띄워놓은 Docker 컨테이너는 모두 제거된다.
Comments