将文件夹挂载到远程Linux主机上
使用 SSHFS 将远程文件夹挂载到 Jetson TX2#
通过这种方式,你可以在 PC 上用 VS Code 流畅写代码,而 TX2 实时运行这些代码,无需手动传输文件。
1. 在 TX2 上安装 SSHFS
在 TX2 的终端执行:
sudo apt update
sudo apt install sshfs2. 执行挂载操作
假设:
远程电脑 IP:
192.168.1.50远程用户名:
workstation远程目录:
/home/workstation/projectsTX2 本地目录:
/home/nvidia/remote_code
步骤:
创建本地挂载点:
mkdir -p ~/remote_code执行挂载:
sshfs workstation@192.168.1.50:/home/workstation/projects ~/remote_code此时输入远程电脑的密码,你的远程文件夹就出现在
~/remote_code下了。
3. 进阶:在 Docker 中访问远程文件夹
这是你目前最需要的场景。你需要让 Docker 容器能够识别这个由 SSHFS 挂载的特殊目录。
启动命令增加权限参数:
由于 SSHFS 基于 FUSE,Docker 需要一些额外的权限才能访问:
docker run --runtime nvidia -it --rm \
--device /dev/fuse \
--cap-add SYS_ADMIN \
-v /home/nvidia/remote_code:/app \
my-tx2-ubuntu20关键参数说明:
--device /dev/fuse:允许容器访问 FUSE 设备。--cap-add SYS_ADMIN:赋予容器系统管理权限,这是访问 FUSE 挂载点所必需的。-v ...:/app:将已经挂载了远程文件的本地目录映射进容器。
4. 常见问题处理
如何卸载?
如果你想断开连接,不要直接删文件夹,使用:
fusermount -u ~/remote_code性能提醒
延迟:由于文件是通过网络实时读取的,如果网络不稳定(尤其是 Wi-Fi),编译大型项目可能会稍慢。
断连:如果远程电脑关机或断网,TX2 上的挂载点会“卡死”。建议使用网线连接以保持稳定。
免密登录(强烈推荐)
为了避免每次挂载都输密码,建议把 TX2 的公钥发给远程电脑:
ssh-copy-id workstation@192.168.1.50