여러분은 가만히 계세요 제가 모두 고장낼게요

IT 지식, PC 모바일 문제 해결 그리고 종종 애니 게임 일상생활 근황을 종종 올리고 있어요!

냐.한국 자세히보기

Synology NAS

시놀로지 Docker 제거 안되는 컨테이너 강제 삭제하기 (작업 실패 오류)

Kamilake 2021. 8. 18. 13:50

Synology NAS에서 도커 패키지를 사용할 때 모종의 이유로 좀비 컨테이너(켜지지도 않고, 삭제되지도 않아서 아무 것도 할 수 없는 컨테이너)로 남게 되는 컨테이너가 있습니다.

이번에는 이를 삭제해 보려고 합니다.

문제

원래는 DSM 도커 GUI에서 삭제를 누르면 평범하게 삭제가 됩니다.

근데 이번엔 안되네요..

일반적으로 하단의 '로그' 탭에 에러 메세지가 남게 됩니다.

에러 메세지를 찾으신 분은 SSH 부분을 넘어가시면 될 것 같네요

저는 어떠한 오류도 찾을 수 없었기에 CLI에서 수동으로 Docker 컨테이너를 삭제해보고 오류 메세지를 찾아야 합니다.

제가 삭제하려는 컨테이너의 이름은 hassio_supervisor 입니다.

일단, 시놀로지 SSH 콘솔에 여러 방법으로 접속해주세요.

윈도우 터미널 정말 잘 만들었어요

docker container rm $(docker container ls -aq --filter name=삭제할_컨테이너_이름)
docker container rm $(docker container ls -aq --filter name=hassio_supervisor)

 driver "btrfs" failed to remove root filesystem: Failed to destroy btrfs snapshot

드라이버 "btrfs"가 루트 파일 시스템을 제거하지 못했습니다. btrfs 스냅샷을 삭제하지 못했습니다.

BTRFS 파일 시스템은 스냅샷 기능을 통해 저장공간을 소비하지 않고 복사 작업을 수행할 수 있는데 이전에 도커를 옮기면서 그냥 cp 명령어로 도커 서브볼륨 폴더를 통째로 카피했더니 이게 무시되면서 발생한 문제같네요

수동으로 해당 폴더를 삭제해주면 됩니다.

cd /도커가_위치한_볼륨/\@docker/btrfs/subvolumes/
cd /volume1/\@docker/btrfs/subvolumes/

위 오류의 폴더명을 기억해 두세요

rm -r 아까_그_폴더
rm -r ccaf7a5e232ec96e23f5bd3b51aa92e45cc37e9bfc84256d09ce17aa97761777

 

 

자 다시 컨테이너를 삭제하러 가봅시다.

docker container rm $(docker container ls -aq --filter name=삭제할_컨테이너_이름)
docker container rm $(docker container ls -aq --filter name=hassio_supervisor)

컨테이너의 활성 ID만 표시되고 종료되셨다면 오류 없이 삭제된 것입니다.

DSM에서도 즉시 반영됩니다.

 

결론

시놀로지 Docker를 BTRFS 파일시스템에서 사용할 경우 모종의 이유로 루트 폴더가 평범한 폴더가 되면서 삭제할 때 오류가 발생하지 않나 싶습니다. 도커를 수동으로 편집할 때 조심해야 할 것 같아요.

 

이 글이 도움이 될 수 있기를 바랍니다.