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

 

FUSE inside Docker

I'm trying to install and use FUSE inside a Docker container. My Dockerfile is the following: FROM golang:1.8 WORKDIR /go/src/app COPY . . RUN apt-get update && apt-get install -y fuse &...

stackoverflow.com

 

 

오늘도 삽질을 여러번하고 

승리한다..!

 

다음에 같은 실수를 하지않기 위해 메모하자!

 

반응형