Cloud/docker
[docker error] fuse: device not found, try 'modprobe fuse' first
근육곰돌이
2022. 1. 6. 19:40
728x90
Docker에서 sshfs를 이용하여 mount를 하려고 한다.
하지만 docker run을 해보니 아래와 처럼 에러가 발생합니다.
이럴때 어떻게 조치해야하는지 한번 살펴 보도록 합시다.
에러
만든 이미지를 아래와 같이 도커 실행 후 마운트를 하려고 하였습니다.
그런데 보아하니,, 권한 느낌의 문제가 발생하였습니다.
- Docker 실행 명령어
# docker run -i -t test
- 에러발생: Docker 내부 mount 시
root@e8e443c6e5aa:/app# sshfs root@x.x.x.x:/mnt /remote -o reconnect,nonempty,allow_other,StrictHostKeyChecking=no,IdentityFile=/id_rsa
--> 에러 발생 !!
fuse: device not found, try 'modprobe fuse' first
원인
원인은 아마.. 도커의 마운트 권한이 없어서 에러가 발생하는거 같습니다.
sshfs fuse를 이용하다보니, /dev/fuse 권한도 필요할거고, 시스템 접근권한도 필요해보입니다.
구글링해서 찾아보니 아래와 같이 도커 실행 시 적용하면 권한이 허용되었습니다.
(필자는 개인적으로 --privileged 모드를 좋아하지않아서 다른방법으로 찾아보았습니다.)
조치
도커 run할때 권한 획득을 위한 옵션을 주면 가능합니다.
docker run -d --rm \
--device /dev/fuse \
--cap-add SYS_ADMIN \
--security-opt apparmor:unconfined \
<image_id/name>
- 참고로 "fusermount: mount failed: Operation not permitted" 해당 에러도 같이 해결 됩니다.
참고 사이트
https://stackoverflow.com/questions/48402218/fuse-inside-docker
오늘도 삽질을 여러번하고
승리한다..!
다음에 같은 실수를 하지않기 위해 메모하자!
반응형