文章目录

  • 系统平台
  • 一、利用docker toolbox搭建虚拟机
  • 二、Windows7 和docker之间的拷贝copy
  • 1.直接拷贝失败
  • 2.先通过虚拟机共享,然后利用docker将共享里的文件拷贝到运行的容器里
  • 3.编译运行



系统平台

Windows7平台
运行软件:
仿真软件:term2_sim.exe
数据处理软件:linux系统
通信:TCP 主机和从机:4567:4567


一、利用docker toolbox搭建虚拟机

利用docker toolbox搭建虚拟机,运行docker image系统,该image包含了项目必要的依赖。
步骤:

  1. 安装docker toolbox,目前更新为desktop docker,但是这是windows10版本,所以从阿里源下载,参照here1
  2. 安装完成后,双击Docker Quickstart Terminal,出现错误:looks like something went wrong in step ‘looking for vboxmanage.exe,原因参照here2,需要重启电脑,才能使DOCKER_TOOLBOX_INStALL_PATH和VBOX_MSI_INSTALL_PATH这两个环境变量生效。
  3. 重启后,docker报错No default Boot2Docker ISO found locally, downloading the latest,参照here1解决,但是替换的路径可能为C:\Users\XXX.docker\machine\cache,XXX不一定为Administrator,可能是你选择登录的用户,只有在登录用户下才有.docker文件。
  4. 然后打开Docker Quickstart Terminal,稍等会跳出一个鲸鱼图像,就成功了
  5. 由于windows启动的docker窗口不友好,不利于操作。所以可以使用ssh工具进行连接,连接后与linux主机功能一致,默认用户为docker。采用xshell工具。
IP:192.168.99.100(默认,在启动窗口可以找到)
PORT:22
用户名:docker
密码:tcuser

二、Windows7 和docker之间的拷贝copy

1.直接拷贝失败

docker cp D:\Github\CarND-Extended-Kalman-Filter-Project\src test1:work/EKF
直接报错 copying between containers is not supported

2.先通过虚拟机共享,然后利用docker将共享里的文件拷贝到运行的容器里

步骤:

  1. Win7虚拟机共享文件夹,参考here3,设置完虚拟机,需要重启虚拟机,然后进入docker查看根目录下是否有共享文件夹名字,并查看文件夹内容,应该是和Win7一致的。
  2. 设置两个docker终端:
# 利用--name test1 启动给定的image,名字为:test1
 docker run -it  --name test1 -p 4567:4567 -v 'pwd':/work udacity/controls_kit:latest
 # 重启另一个终端,运行docker ps 查看test1在运行
 docker ps 
 # 从docker的共享文件拷贝到test1
 docker cp 共享文件名 test1:work/EKF

3.编译运行

# 进入到编译文件的根目录下运行 From the root of the repo:
mkdir build && cd build
cmake .. && make
./ExtendedKF

此时,仿真器需要设置端口

  1. 打开 Oracle VM VirtualBox
  2. 默认设置
  3. 点击Network, and then Advanced.
  4. 点击接口转换 Port Forwarding
  5. 点击 green plus, adds new port forwarding rule.
  6. 新加Add a rule that assigns 4567 as both the host port and guest Port, as in the screenshot.

    至此,通过运行:term2_sim.exe和./ExtendedKF,仿真和拓展卡尔曼滤波之间的关系已经打通,终端显示connected表示成功,剩下的就可以编程了。