跳到主要内容

如何把服务器容器中的文件夹通过nfs的方式挂载到本地mac电脑

要将服务器容器中的文件夹通过 NFS 挂载到本地 Mac 电脑,需要完成服务器端(容器所在主机)和客户端(Mac)的配置,步骤如下:

一、服务器端配置(容器所在的 Linux 主机)

  1. 安装 NFS 服务
    在服务器主机(不是容器内)安装 NFS 服务:

    # Ubuntu/Debian
    sudo apt update && sudo apt install nfs-kernel-server

    # CentOS/RHEL
    sudo yum install nfs-utils
  2. 准备要共享的目录
    假设容器中的目录为 /container/data,且已通过 -v /host/data:/container/data 挂载到主机的 /host/data。我们需要共享主机的 /host/data

    # 确保目录存在并设置权限
    sudo mkdir -p /host/data
    sudo chmod 777 /host/data # 简化权限,生产环境需谨慎设置
  3. 配置 NFS 共享
    编辑 NFS 配置文件 /etc/exports,添加允许 Mac 访问的规则:

    sudo nano /etc/exports

    添加内容(替换 MAC_IP 为你的 Mac 本地 IP):

    /host/data  MAC_IP(rw,sync,no_subtree_check,insecure)
    • rw:读写权限
    • sync:同步写入磁盘
    • insecure:允许非标准端口(Mac 可能需要)
  4. 生效配置并重启服务

    # 刷新共享配置
    sudo exportfs -a

    # 重启 NFS 服务
    sudo systemctl restart nfs-kernel-server # Ubuntu/Debian
    # 或
    sudo systemctl restart nfs-server # CentOS/RHEL
  5. 开放防火墙端口
    确保服务器防火墙允许 NFS 相关端口(2049、111 等):

    # UFW 防火墙(Ubuntu)
    sudo ufw allow from MAC_IP to any port nfs
    sudo ufw allow 111/tcp
    sudo ufw allow 111/udp

二、Mac 客户端配置

  1. 创建本地挂载点
    在 Mac 上创建一个目录用于挂载:

    mkdir -p ~/nfs_mount
  2. 挂载 NFS 共享
    使用 mount 命令挂载服务器共享(替换 SERVER_IP 为服务器 IP):

    sudo mount -t nfs SERVER_IP:/host/data ~/nfs_mount
  3. 验证挂载
    查看是否挂载成功:

    df -h  # 查看挂载信息
    ls ~/nfs_mount # 查看共享目录内容

三、卸载挂载(可选)

需要断开连接时,执行:

sudo umount ~/nfs_mount

注意事项

  1. 容器与主机的挂载关系:必须确保容器内的目录已正确挂载到主机,否则 NFS 共享的是主机空目录。
  2. 权限问题:若出现权限错误,检查服务器目录权限(chmod)和 NFS 配置中的 rw 选项。
  3. IP 地址:Mac 和服务器需在同一网络,且 IP 地址需正确(可通过 ifconfig 查看 Mac 本地 IP)。

通过以上步骤,即可在 Mac 上直接访问服务器容器中的文件。