Cannot mount in docker container: fuse device not found

What is the problem you are having with rclone?

I am having issues trying to create a mount in a docker container.

rclone version output:

rclone v1.69.1
- os/version: alpine 3.21.2 (64 bit)
- os/kernel: 5.15.0-76-generic (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.24.0
- go/linking: static
- go/tags: none

Which cloud storage system are you using?

Onedrive for this specific case, but I don't think it really matters.

The command:

rclone -vv mount --vfs-cache-mode full arie@127development.com: mount-test-2

I ran this inside the docker container, but I get the same issue when hitting the remote control API.

rclone config

[arie@127development.com]
type = onedrive
token = XXX
drive_id = XXX
drive_type = personal

I only pasted the config for one specific drive, there are others configured, but I don't consider them to be relevant.

Log output

/data $ rclone -vv mount --vfs-cache-mode full arie@127development.com: mount-test-2
2025/02/21 19:51:13 DEBUG : rclone: Version "v1.69.1" starting with parameters ["rclone" "-vv" "mount" "--vfs-cache-mode" "full" "arie@127development.com:" "mount-test-2"]
2025/02/21 19:51:13 DEBUG : Creating backend with remote "arie@127development.com:"
2025/02/21 19:51:13 DEBUG : Using config file from "/config/rclone/rclone.conf"
2025/02/21 19:51:14 DEBUG : OneDrive root '': Next delta token is: NDslMjM0OyUyMzE7MztjYzgyMzQxOS0zMDg2LTQ5MzMtYjFkMi1iNDBlYzgxNmM4NTY7NjM4NzU3NjQyNzQyMDAwMDAwOzkwMjc2MDYwMTslMjM7JTIzOyUyMzA7JTIz
2025/02/21 19:51:14 DEBUG : OneDrive root '': vfs cache: root is "/home/myuserd/.cache/rclone"
2025/02/21 19:51:14 DEBUG : OneDrive root '': vfs cache: data root is "/home/myuserd/.cache/rclone/vfs/arie@127development.com"
2025/02/21 19:51:14 DEBUG : OneDrive root '': vfs cache: metadata root is "/home/myuserd/.cache/rclone/vfsMeta/arie@127development.com"
2025/02/21 19:51:14 DEBUG : Creating backend with remote ":local,encoding='Slash,Dot',links=false:/home/myuserd/.cache/rclone/vfs/arie@127development.com/"
2025/02/21 19:51:14 DEBUG : :local: detected overridden config - adding "{8un-i}" suffix to name
2025/02/21 19:51:14 DEBUG : fs cache: renaming cache item ":local,encoding='Slash,Dot',links=false:/home/myuserd/.cache/rclone/vfs/arie@127development.com/" to be canonical ":local{8un-i}:/home/myuserd/.cache/rclone/vfs/arie@127development.com"
2025/02/21 19:51:14 DEBUG : Creating backend with remote ":local,encoding='Slash,Dot',links=false:/home/myuserd/.cache/rclone/vfsMeta/arie@127development.com/"
2025/02/21 19:51:14 DEBUG : :local: detected overridden config - adding "{8un-i}" suffix to name
2025/02/21 19:51:14 DEBUG : fs cache: renaming cache item ":local,encoding='Slash,Dot',links=false:/home/myuserd/.cache/rclone/vfsMeta/arie@127development.com/" to be canonical ":local{8un-i}:/home/myuserd/.cache/rclone/vfsMeta/arie@127development.com"
2025/02/21 19:51:14 INFO  : OneDrive root '': vfs cache: cleaned: objects 0 (was 0) in use 0, to upload 0, uploading 0, total size 0 (was 0)
2025/02/21 19:51:14 DEBUG : OneDrive root '': Mounting on "mount-test-2"
2025/02/21 19:51:14 mount helper error: fusermount3: fuse device not found, try 'modprobe fuse' first
2025/02/21 19:51:14 CRITICAL: Fatal error: failed to mount FUSE fs: fusermount: exit status 1

I Googled around and searched this forum for an answer. The only post I found was one from March 2024 that got closed without an answer, I also know that the newest docker image comes with fuse3 installed, so that's not the problem.

For what it's worth, here is my Dockerfile:

FROM rclone/rclone

ARG HOST_UID
ARG HOST_GID

COPY users.sh .
RUN ./users.sh $HOST_GID $HOST_GID

And the relvant part of my compose file

  rclone:
    build:
      context: rclone
      args:
        HOST_UID: ${HOST_UID}
        HOST_GID: ${HOST_GID}
    user: ${HOST_UID}:${HOST_GID}
    container_name: rclone
    restart: always
    command: rcd -vv --rc-no-auth --rc-addr 0.0.0.0:5572 --log-file=/logs/rclone.log --dump headers,auth
    ports:
      - 5572:5572
    volumes:
      - ./rclone/config:/config/rclone:rw
      - ./rclone/logs:/logs:rw
      - ./rclone/data:/data:rw

As you can see, I run the Docker container with a custom user. However, I don't think that is the cause. The command gives the same output if I connect to Docker with docker exec -it --user root rclone sh.

I managed to mount to the same folder using a rclone install on the host machine, but I was wondering why it won't work inside the Docker container.

welcome to the forum,

is that a typo?

post the output

Is that a typo?

Yes. I realised I missed that last line when copying over the compose file. I fixed it now.

post the output

I am not exactly sure what you mean here? I have pasted the full log output, there's not much more I have to paste.

If you are looking for the output of modprobe/fuse, it's this:

/data $ modprobe fuse
modprobe: can't change directory to '/lib/modules': No such file or directory

first, why not just follow the rclone docs exactly, get that working?

From you build, you need to include fuse.

I think something like:

  rclone:
    build:
      context: rclone
      args:
        HOST_UID: ${HOST_UID}
        HOST_GID: ${HOST_GID}
    user: "${HOST_UID}:${HOST_GID}"
    container_name: rclone
    restart: always
    privileged: true  # Required for FUSE
    cap_add:
      - SYS_ADMIN     # Required capability for mounting
    devices:
      - /dev/fuse:/dev/fuse
    security_opt:
      - apparmor:unconfined  # Disable AppArmor for FUSE access
    command: rcd -vv --rc-no-auth --rc-addr 0.0.0.0:5572 --log-file=/logs/rclone.log --dump headers,auth
    ports:
      - 5572:5572
    volumes:
      - ./rclone/config:/config/rclone:rw
      - ./rclone/logs:/logs:rw
      - ./rclone/data:/data:rw

and sorry dockerfile

FROM rclone/rclone

ARG HOST_UID
ARG HOST_GID

# Install FUSE and necessary utilities
RUN apk add --no-cache fuse && \
    mkdir -p /mnt/fuse

COPY users.sh .
RUN ./users.sh $HOST_GID $HOST_UID

# Enable FUSE
RUN mkdir -p /dev/fuse && chmod 666 /dev/fuse

1 Like

Thank you very much. This works very well

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.