51. 网络、Docker、系统镜像与主控差异¶
51.1 学习目标¶
为主控选择可靠的网络和运行方式,分清热点、无线客户端、容器、网络挂载与图形窗口各自影响的范围。SSH 登录成功只验证了网络和远程终端;容器内的设备、文件和 ROS 环境还要分别检查。
51.2 适用范围¶
树莓派、Jetson、RDK、Atlas 和 IPC 主控;原生 Ubuntu、Docker 和虚拟机环境。
51.3 操作前检查¶
- 已记录主控型号、Ubuntu、ROS 发行版和存储介质。
- 已完成第 13 章的 SSH 入口。
- 不在生产环境直接切换网络或覆盖镜像。
51.4 工作原理¶
主机、容器与设备边界¶
宿主机(Host)是直接运行 Ubuntu 并管理硬件的主控。Docker在宿主机上隔离运行一组进程和文件;其中的容器(Container)是运行实例,镜像(Image)是创建容器时使用的只读软件模板。容器默认看不到宿主机的全部文件和设备,需要通过挂载、设备映射和网络配置显式提供。
主控差异主要出现在CPU、GPU、驱动、存储、网络接口和硬件加速。网络文件系统(Network File System, NFS)可以把另一台计算机共享的目录挂载到本地路径。使用容器或网络挂载后,应分别验证设备映射、文件权限、网络和时间同步。
51.5 操作步骤¶
网络与容器检查¶
- 选择热点、Station 或有线网络,并记录新 IP 的获取方式。
- 主控原生环境中确认 USB、视频、串口和 GPU 设备。
- 使用 Docker 时查看容器、镜像、挂载和设备:
docker ps
docker inspect <容器名>
- 进入容器后重新检查
ROS_DISTRO、设备节点、话题和时间。 - 使用 NFS 前先验证挂载读写和网络断开行为。
- 需要 RViz/OpenCV 桌面时,选择 VNC 或本地显示;不要让 SSH X11 转发承担高帧率视频。
- 记录主控平台和运行方式,写入部署矩阵。
51.6 验收标准¶
- 原生和容器中的 ROS 发行版、工作空间与源码一致。
- 需要的设备、GPU、网络和挂载在实际运行环境中可见。
- 网络切换有恢复路径,容器停止不会遗留运动命令。
- 图形应用选择与带宽、显示和主控能力匹配。
51.7 故障排查¶
| 现象 | 检查 |
|---|---|
| 宿主有串口、容器没有 | 设备映射、权限、用户组 |
| 容器能启动但相机打不开 | /dev/video*、USB 带宽和驱动 |
| NFS 目录为空 | 挂载路径、网络和权限 |
| VNC 正常、SSH 图像卡顿 | 使用场景不同,不要混淆两者 |
| 换主控后性能差异大 | 架构、驱动、硬件加速和模型版本 |