Docker 파일 시스템에 열려 있는 파일이 없지만 마운트 해제할 수 없습니다.

Docker 파일 시스템에 열려 있는 파일이 없지만 마운트 해제할 수 없습니다.

/var/lib/dockerUbuntu 14.04를 사용하여 ext4 파일 시스템을 설치했습니다.

나는 달려가서 umount /var/lib/docker다음을 얻었습니다:

umount: /var/lib/docker: device is busy.

Docker를 닫았 service docker stop는데 ps aux프로세스가 표시되지 않습니다.

이상한 점은 fuser -M /var/lib/docker둘 다 lsof +f -- /var/lib/docker파일을 여는 과정을 보여주지 않는다는 것입니다.

동일한 설정을 사용하는 40개 이상의 다른 서버에서는 이런 일이 발생하지 않습니다. 방금 알았습니다.

재부팅하면 문제가 해결되었습니다. 무슨 일이 일어났는지 아는 사람이 있거나 문제가 다시 발생하면 조사할 수 있는 다른 방법이 있는지 궁금합니다.

  • Docker(1.11.2)는 이 FS 위에 있는 컨테이너의 오버레이 파일 시스템으로 aufs를 사용해 왔습니다. 그러나 모든 컨테이너와 Docker 프로세스는 umount.
  • 커널 세부정보:Linux node05 4.4.0-38-generic #57~14.04.1-Ubuntu SMP Tue Sep 6 17:20:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

관련 질문:

업데이트 - 다른 서버에서 재현

이 상황은 동일한 상황에서 매우 유사한 구성을 가진 다른 서버에서 반복됩니다. 즉, docker는 종료되지만 umount /var/lib/docker"사용 중"이므로 종료할 수 없습니다.

이전과 동일 fuser하며 lsofdocker FS에서 파일을 여는 프로세스는 표시되지 않습니다.

mount | grep aufsaufs 파일 시스템을 표시하지 않습니다.

df -h| grep docker/var/lib/docker 디렉터리에 설치된 두 개의 Docker 관리 파일 시스템을 보여줍니다( lsof이러한 파일 시스템은 표시되지 않음).

그러나 두 파일 시스템을 모두 마운트 해제해도 문제가 해결되지 않습니다.

해결책

유일한 해결 방법은 파일 시스템을 /etc/fstab일시적으로 주석 처리하도록 편집한 /var/lib/docker다음 서버를 다시 시작하여 /var/lib/docker마운트되지 않도록 하는 것입니다.

관련 정보