-
[Docker] docker symlink no such file or directory이슈 해결 2025. 1. 27. 12:30
도커 파일
- 도커 이미지를 생성하기 위한 설정 파일
도커 이미지
- 도커 파일을 기반으로 빌드된 애플리케이션 실행 환경을 패키징한 파일
도커 컨테이너
- 도커 이미지를 실행하여 동작 중인 애플리케이션 환경 (도커 이미지를 기반으로 실행된 가상화 환경)
개발 PC에 도커 컨테이너를 띄워야 했는데 ssd 공간이 부족해서 불필요하게 공간을 차지하고 있는게 있을지 확인 중에 문제가 발생했다.
도커쪽을 제외하고는 더 이상 공간을 만들 수 없는 상황이었기에 현재 도커를 사용중인 것이 전혀 없었기에 해당 공간을 비워서 공간을 만들고자 했다.
터미널에 “sudo baobab” 입력하여 해당 overlay2를 우클릭하여 “휴지통으로 옮기기” 클릭했는데 실제 휴지통에는 해당 폴더가 없었고 용량 역시 달라진게 없었음
baobab이란 프로그램을 추후 캡쳐한 이미지임 - /var/lib/docker/overlay2 폴더 내 용량 그랬는데 ~/.local/share/Trash/files 내에 overlay2라는 폴더가 있는 것을 확인해서 구글링을 통해 overlay2 폴더 내의 파일들을 지우고자 “rm -rf ~/.local/share/Trash/files/* 또는 rm -rf ~/.local/share/Trash/files/overlay2/* 명령어를 통해 overlay2를 통째로 삭제함
더보기overlay2
- 컨테이너와 이미지를 관리하기 위한 스토리지 드라이버의 디렉토리라고 함
해당 폴더 또는 폴더 내 파일들을 지울 경우 다음과 같은 문제 발생할 수 있음.
1. 이미지 및 컨테이너 손실
- 이미지 파일이 손상되어 docker run 또는 docker load 같은 명령어가 실패하게 된다. 그래서 docker load -i … 입력했을 때 “symlink … no such file or directory” 라는 에러메세지 발생했던 것으로 보임.
아마 docker에서 symlink로 overlay2라는 디렉토리를 가리키는 가상 파일을 뒀을텐데 overlay2라는 디렉토리가 없자 이런 에러메세지가 뜬 것으로 보임.
용량은 엄청 여유가 생겼지만 docker load 명령어를 치니 “symlink no such file or directory”와 같은 에러메세지 발생함
그래서 해당 메세지 검색을 통해 overlay2를 지운 것이 문제가 된 것으로 생각했고 문제 원인과 에러메시지를 GPT에 입력하여 해결 방법 그대로 진행해봄
# 1~4번이 해결방법임 # 1. Docker 정지 sudo systemctl stop docker # 2. Docker 데이터 디렉토리 삭제 sudo rm -rf /var/lib/docker # 3. Docker 데이터 디렉토리 재생성 sudo mkdir /var/lib/docker # 4. Docker 다시 시작 sudo systemctl start docker # 이미지 로드 (파일명 예: ai.tar) docker load -i 파일명 # 로드된 이미지 확인 docker images # 컨테이너 실행 docker run -it ... # 컨테이너 확인 (-a 옵션은 모든 컨테이너 나옴) docker ps -a
당시에 도커 이미지를 빨리 띄워야 했기도 했지만 무엇보다 도커 관련해서 문제가 생기더라도 도커를 삭제 후에 다시 깔면 큰 문제가 없을거라는 생각이 있어서 좀 더 확인 없이 진행했던 것 같습니다.
아무튼 이번 일을 통해서 언제든지 문제가 생길 수 있겠지만 본인이 무엇을 잘못 건드려서 문제가 생긴 것인지 잘 기록하고 기억해둬야 함을 다시 한번 느꼈습니다.
실제 운영중인 서비스도 현재 PC 기반에서 동작하는 프로그램들이다 보니 환경을 모두 동일하게 맞춰줄 수 있는 도커를 활용해보고 싶으나 컨테이너를 매번 띄워줘야 하는 점 등 몇가지 문제점들이 있어 이를 정리하여 활용 가능할지 검토하여 현재보다 더 나은 환경에서 프로그램이 동작할 수 있도록 해야겠습니다.