
All credit goes to trapexit/mergerfs.
If you are here, then you are most likely looking for a simple solution to fuse multiple hard drives' contents to a single mountpoint using mergerfs and docker. There are multiple containers which dockerize mergerfs, however none are regularly updated, with open-sourced dockerfiles (no ******s) and simple to use. This repository attempts to do just that. Simply mount your hard drives as volumes to /disks and mergerfs will make them available under /merged. Exposing the /merged volume to host, you need to use :shared bind to share it between the container and host. Change the volume path on the host to your prefered location and that's it!
Docker run:
bashdocker run -v /mnt/nd1:/disks/nd1 -v /mnt/nd2:/disks/nd2 -v /mnt/nd3:/disks/nd3 -v /mnt/merged:/merged:shared --device /dev/fuse --cap-add SYS_ADMIN -d hvalev/mergerfs
docker-compose:
yamlservices: mergerfs: image: hvalev/mergerfs:latest container_name: mergerfs cap_add: - SYS_ADMIN devices: - /dev/fuse:/dev/fuse volumes: - /mnt/nd1:/disks/nd1 - /mnt/nd2:/disks/nd2 - /mnt/nd3:/disks/nd3 - /mnt/merged:/merged:shared restart: always
parameters.conf with your own using an additional volume mount that maps onto /config inside the docker. You can use the one in the repo as a template.mergerfs parameters by using the MERGERFS_PARAMS environment variable as follows:yamlservices: mergerfs: image: hvalev/mergerfs:latest container_name: mergerfs environment: MERGERFS_PARAMS: 'moveonenospc=true,dropcacheonclose=true,category.create=mfs,cache.files=partial' cap_add: - SYS_ADMIN devices: - /dev/fuse:/dev/fuse volumes: - /mnt/nd1:/disks/nd1 - /mnt/nd2:/disks/nd2 - /mnt/nd3:/disks/nd3 - /mnt/merged:/merged:shared restart: always
yamlservices: mergerfs: image: hvalev/mergerfs:latest container_name: mergerfs environment: MERGERFS_PARAMS: 'moveonenospc=true,dropcacheonclose=true,category.create=mfs,cache.files=partial' cap_add: - SYS_ADMIN devices: - /dev/fuse:/dev/fuse volumes: - /mnt/hd1:/disks/hd1 - /mnt/hd2:/disks/hd2 - /mnt/hd3:/disks/hd3 - /mnt/hd:/merged:shared restart: always samba: image: elswork/samba:3.2.8 container_name: samba environment: TZ: 'Europe/Amsterdam' ports: - 139:139 - 445:445 volumes: - /mnt/hd:/mnt/hd command: '-u "1000:1000:user:user:user_password" -u "1000:1000:guest:guest:guest_password" -s "hd:/mnt/hd:rw:user" -s "media:/mnt/hd:ro:guest"' restart: unless-stopped depends_on: - mergerfs
The following resources have been extremely helpful:
mergerfs itself has the following licence:
/* ISC License Copyright (c) 2016, Antonio SJ Musumeci <***> Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
[***]
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429