
nfs-server-alpine是一个轻量级NFS服务器镜像,基于Alpine Linux构建,仅支持NFS v4协议,通过TCP端口2049提供文件共享服务。该镜像设计简洁、体积小巧,适用于需要快速部署NFS服务的场景,如容器间文件共享、开发环境资源共享等。
bashdocker run -d --name nfs --privileged -v /本地目录:/nfsshare -e SHARED_DIRECTORY=/nfsshare itsthenetwork/nfs-server-alpine:latest
--net=host或-p 2049:2049参数| 环境变量 | 描述 | 默认值 |
|---|---|---|
| SHARED_DIRECTORY | 指定要共享的目录路径 | 无(必须设置) |
| READ_ONLY | 设置共享目录为只读模式 | 未设置(默认为读写模式) |
| SYNC | 启用同步写入模式 | 未设置(默认为异步模式) |
| PERMITTED | 指定允许访问的客户端IP范围(支持通配符) | *(允许所有客户端) |
NFS服务需要特定的系统权限,推荐使用--privileged模式运行。也可尝试使用以下能力集替代:
bash--cap-add SYS_ADMIN --cap-add SETPCAP --security-opt=no-new-privileges
bash# 基本挂载 sudo mount -v 服务器IP:/ /本地挂载点 # 显式指定NFS v4 sudo mount -v -o vers=4,loud 服务器IP:/ /本地挂载点 # 卸载 sudo umount /本地挂载点
yamlversion: '3' services: nfs-server: image: itsthenetwork/nfs-server-alpine:latest privileged: true volumes: - /本地目录:/nfsshare environment: - SHARED_DIRECTORY=/nfsshare - PERMITTED=192.168.1.* - SYNC=true ports: - "2049:2049"
yamlapiVersion: v1 kind: Pod metadata: name: nfs-server spec: containers: - name: nfs-server image: itsthenetwork/nfs-server-alpine:latest securityContext: privileged: true volumeMounts: - name: nfs-data mountPath: /nfsshare env: - name: SHARED_DIRECTORY value: /nfsshare - name: PERMITTED value: "10.244.0.*" volumes: - name: nfs-data hostPath: path: /本地目录
通过挂载子目录并设置额外环境变量实现多目录共享:
bashdocker run -d --name nfs --privileged \ -v /本地目录1:/nfsshare \ -v /本地目录2:/nfsshare/another \ -e SHARED_DIRECTORY=/nfsshare \ -e SHARED_DIRECTORY_2=/nfsshare/another \ itsthenetwork/nfs-server-alpine:latest
客户端挂载:
bashsudo mount -v 服务器IP:/ /挂载点1 sudo mount -v 服务器IP:/another /挂载点2
OverlayFS不支持NFS导出,需将共享目录挂载到其他文件系统(如ext4)。在RancherOS上推荐使用/home、/media或/mnt目录。
需启用内核头文件服务:
bashsudo ros service enable kernel-headers sudo ros service up kernel-headers
或在cloud-config.yml中添加:
yaml#cloud-config rancher: services_include: kernel-headers: true
部分操作系统需手动加载NFS内核模块:
bashmodprobe nfs nfsd
成功启动的日志示例:
Writing SHARED_DIRECTORY to /etc/exports file The PERMITTED environment variable is unset or null, defaulting to '*'. This means any client can mount. The READ_ONLY environment variable is unset or null, defaulting to 'rw'. Clients have read/write access. The SYNC environment variable is unset or null, defaulting to 'async' mode. Writes will not be immediately written to disk. Displaying /etc/exports contents: /nfsshare *(rw,fsid=0,async,no_subtree_check,no_auth_nlm,insecure,no_root_squash) Starting rpcbind... Displaying rpcbind status... program version netid address service owner 100000 4 tcp6 ::.0.111 - superuser 100000 3 tcp6 ::.0.111 - superuser ... Startup successful.
dockerfileFROM alpine:latest LABEL maintainer "Steven Iveson <***>" LABEL source "https://github.com/sjiveson/nfs-server-alpine" LABEL branch "master" COPY Dockerfile README.md / RUN apk add --no-cache --update --verbose nfs-utils bash iproute2 && \ rm -rf /var/cache/apk /tmp /sbin/halt /sbin/poweroff /sbin/reboot && \ mkdir -p /var/lib/nfs/rpc_pipefs /var/lib/nfs/v4recovery && \ echo "rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs defaults 0 0" >> /etc/fstab && \ echo "nfsd /proc/fs/nfsd nfsd defaults 0 0" >> /etc/fstab COPY exports /etc/ COPY nfsd.sh /usr/bin/nfsd.sh COPY .bashrc /root/.bashrc RUN chmod +x /usr/bin/nfsd.sh ENTRYPOINT ["/usr/bin/nfsd.sh"]
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务