docker commit 镜像持久化保存先打开 Docker Desktop,启动目标镜像:

在 Windows PowerShell 中切换到 Docker 镜像绑定的本地文件夹,执行:
docker run -p 6081:80 --security-opt seccomp=unconfined --shm-size=512m -v "${PWD}:/home/ws" ghcr.io/tiryoh/ros2-desktop-vnc:humble
注意:切换镜像名称;端口号被占用时更换一个可用端口即可。
绑定成功后 PowerShell 窗口不能关闭。一旦 Docker 镜像关闭,所有操作数据都会丢失。必须通过 docker commit 保存为新的镜像。

浏览器访问 http://localhost:6081/ 进入 VNC 可视化界面,打开命令行终端:

在 VNC 终端中执行:
pip3 install pybullet
pip3 install opencv-python opencv-contrib-python
pip3 install "numpy<2"
安装完成后,进入 /home/ubuntu/.local/lib/python3.10/site-packages,确认三个包都已就位:

在 Windows PowerShell 中执行:
docker commit -m "install pybullet and opencv" -a "wangqiuzhuang" 9b76cfdb3097 wangqiuzhuang
返回结果:
sha256:b1f518616fdbaae182f271864e2f9eeecbf137c86b2707aeeefe3ec7881cd307

# 停止原容器
docker stop 9b76cfdb3097
# 验证进程已停止
docker ps
# 使用自定义镜像启动
docker run wangqiuzhuang
重新连接 6081 端口,进入 /home/ubuntu/.local/lib/python3.10/site-packages,确认之前下载的文件依然存在:

提醒:如果启动了多个镜像,务必确认操作的是
6081端口,不要误操作到6080端口。
将 GitHub 作业仓库通过 GitHub Pages 部署为可公开访问的网页,便于课程系统自动检测和评分。
week1/, week2/, …),每个文件夹包含 README.md 和 img/ 子目录img/xxx.png 格式引用,避免使用外部 URL,确保 100% 图片不碎链_config.yml 选择主题美化页面https://wangqiuzhuang.github.io/ai-robot-wangqiuzhuang/本周完成了两个重要任务:一是掌握了 Docker 容器的镜像持久化技巧,通过 docker commit 将配置好的环境保存为自定义镜像;二是学习了 Git 仓库的规范化整理方法,理解了 GitHub Pages 部署流程,为课程作业的展示和评分做好了准备。