文章目录
- 系统平台
- 一、利用docker toolbox搭建虚拟机
- 二、Windows7 和docker之间的拷贝copy
- 1.直接拷贝失败
- 2.先通过虚拟机共享,然后利用docker将共享里的文件拷贝到运行的容器里
- 3.编译运行
系统平台
Windows7平台
运行软件:
仿真软件:term2_sim.exe
数据处理软件:linux系统
通信:TCP 主机和从机:4567:4567
一、利用docker toolbox搭建虚拟机
利用docker toolbox搭建虚拟机,运行docker image系统,该image包含了项目必要的依赖。
步骤:
- 安装docker toolbox,目前更新为desktop docker,但是这是windows10版本,所以从阿里源下载,参照here1
- 安装完成后,双击Docker Quickstart Terminal,出现错误:looks like something went wrong in step ‘looking for vboxmanage.exe,原因参照here2,需要重启电脑,才能使DOCKER_TOOLBOX_INStALL_PATH和VBOX_MSI_INSTALL_PATH这两个环境变量生效。
- 重启后,docker报错No default Boot2Docker ISO found locally, downloading the latest,参照here1解决,但是替换的路径可能为C:\Users\XXX.docker\machine\cache,XXX不一定为Administrator,可能是你选择登录的用户,只有在登录用户下才有.docker文件。
- 然后打开Docker Quickstart Terminal,稍等会跳出一个鲸鱼图像,就成功了
- 由于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将共享里的文件拷贝到运行的容器里
步骤:
- Win7虚拟机共享文件夹,参考here3,设置完虚拟机,需要重启虚拟机,然后进入docker查看根目录下是否有共享文件夹名字,并查看文件夹内容,应该是和Win7一致的。
- 设置两个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
此时,仿真器需要设置端口
- 打开 Oracle VM VirtualBox
- 默认设置
- 点击Network, and then Advanced.
- 点击接口转换 Port Forwarding
- 点击 green plus, adds new port forwarding rule.
- 新加Add a rule that assigns 4567 as both the host port and guest Port, as in the screenshot.
至此,通过运行:term2_sim.exe和./ExtendedKF,仿真和拓展卡尔曼滤波之间的关系已经打通,终端显示connected表示成功,剩下的就可以编程了。