1. 本地的安装系统环境
系统版本 | Windows 10 企业版LTSC 1809 |
处理器 | i5-10500 CPU @3.10GHz 3.10Locator 2D在Windows 上的安装 |
RAM | 8GB |
系统类型 | x64 |
2.打开Windows自带的虚拟机功能
这里推荐使用WLS2的虚拟功能安装Docker,但其对windows的版本有更高的要求(Windows 10 64位:家庭版,专业版,企业版或教育版1903版(内部版本18362或更高版本)),具体的安装过程可参考win10利用WSL2安装docker的2种方式 - 知乎。由于当前的系统版本低于WSL2要求的版本,因此我们使用Hyper-V的方式安装Docker。
2.1使用 PowerShell 启用 Hyper-V
以管理员身份打开 PowerShell 控制台,运行以下命令:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
2.2通过控制面板“设置”启用 Hyper-V 角色
-
右键单击 Windows 按钮并选择“应用和功能”。
-
选择相关设置下右侧的“程序和功能”。
-
选择“打开或关闭 Windows 功能”。
-
选择“Hyper-V”,然后单击“确定”。
-
如果使用Hyper-V,建议关闭WSL功能,可以节省内存:
注意:安装完成后,系统会提示你重新启动计算机。
打开任务管理器查看虚拟化是否开启
2.3查看Hyper-V是否正确配置
-
搜索框搜索Hyper-V并打开Hyer-V快速创建
-
选择本地员进行安装,创建一个Linux虚拟机
-
搜索Hyper-V管理器:启动刚刚创建的虚拟机,是否可以正常运行,正常运行后关闭或者删除以减少内存的占用
以上没问题证明Windows的Hyper-V虚拟化功能没问题
3.启动ROKIT Locator容器
3.1 安装docker
下载docker安装包:
https://smartidedl.blob.core.chinacloudapi.cn/docker/20210926/Docker-win.exe(国内镜像)
https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe(官方镜像)
下载完成后默认选项安装
可能存在的问题:
1.内存不足,无法创建
首先打开任务管理器查看内存剩余情况,出现这个问题是由于系统内存低于C:\Users\(自己的用户名)\AppData\Roaming\Docker\settings.json文件中memoryMiB的值。解决这个办法有三种 a.配置较小memoryMiB的值,当前值2048足够使用 b.关闭WSL等其它虚拟化软件,检查Hyper-V是否有其它虚拟系统运行并进行关闭,关闭浏览器等消耗内存的服务和应用 c.扩展内存
一般情况下Hyper-V只会有一个docker创建的虚拟机,其它虚拟机可关闭并删除
2.docker一直处于stop或者start状态
任务管理器上强制关闭docker,重新运行
3.无法下载镜像
需要在docker客户端配置源,官方源在国内访问较慢
当安装完成并成功启动docker后我们可以简单测试,打开后台命令窗口,并运行
docker run hello-world
3.2 安装Locator镜像
3.2.1 请联系力士乐获得ROKIT Locator的客户端和服务端镜像。
3.2.2 安装过程可参考安装博世力士乐ROKIT Locator和aXessor_locator1.6.4-CSDN博客,
其中首先安装CodeMeter密码狗软件 ,从CodeMeter官网下载对应系统的CodeMeter User Runtime. 选择下图完整安装包,不要选Driver Only. 然后安装CodeMeter:
用浏览器打开localhost:22352,配置CodeMeter Server Access, Enable Network Server, Apply.
3.2.3 移除旧版本Locator镜像
如果是升级,先停止当前低版本的Locator容器。用docker ps列出正在运行的容器ID,用docker stop [container 1 ID] [container 2 ID] …停止运行的容器,再用docker ps检查容器是否被停止了。如下所示:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dab701d17479 boschrexroth-laserlocalization-server:lls-1.6.0-final "/usr/bin/bstarter" 5 seconds ago Up 3 seconds 0.0.0.0:8082->8082/tcp, :::8082->8082/tcp, 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp, 0.0.0.0:8445->8445/tcp, :::8445->8445/tcp, 0.0.0.0:8449->8449/tcp, :::8449->8449/tcp, 0.0.0.0:9000-9001->9000-9001/tcp, :::9000-9001->9000-9001/tcp, 0.0.0.0:9015->9015/tcp, :::9015->9015/tcp, 0.0.0.0:9017-9018->9017-9018/tcp, :::9017-9018->9017-9018/tcp, 0.0.0.0:9440-9441->9440-9441/tcp, :::9440-9441->9440-9441/tcp, 0.0.0.0:9455->9455/tcp, :::9455->9455/tcp, 0.0.0.0:9457-9458->9457-9458/tcp, :::9457-9458->9457-9458/tcp, 0.0.0.0:21638-21643->21638-21643/tcp, :::21638-21643->21638-21643/tcp BoschRexrothLocalizationServer
ed2aa8dc8626 boschrexroth-laserlocalization-client:lls-1.6.0-final "/usr/bin/bstarter" 10 seconds ago Up 8 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8084->8084/tcp, :::8084->8084/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp, 0.0.0.0:8447->8447/tcp, :::8447->8447/tcp, 0.0.0.0:9002-9014->9002-9014/tcp, :::9002-9014->9002-9014/tcp, 0.0.0.0:9016->9016/tcp, :::9016->9016/tcp, 0.0.0.0:9019-9020->9019-9020/tcp, :::9019-9020->9019-9020/tcp, 0.0.0.0:9442-9454->9442-9454/tcp, :::9442-9454->9442-9454/tcp, 0.0.0.0:9456->9456/tcp, :::9456->9456/tcp, 0.0.0.0:6060-6061->6060-6061/udp, :::6060-6061->6060-6061/udp, 0.0.0.0:9459-9460->9459-9460/tcp, :::9459-9460->9459-9460/tcp BoschRexrothLocalizationClient
$ docker stop dab701d17479 ed2aa8dc8626
dab701d17479
ed2aa8dc8626
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
dab701d17479ae22d3a498c874313b68ac721ed5089b5951cd86c6181823e83a
ed2aa8dc8626a6484a3921157f52cb6630e4ec0ca34dd6601d55f66a008ca667
Total reclaimed space: 42.45MB
$ docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
boschrexroth-laserlocalization-server lls-1.6.0-final a64c3137f1d8 7 months ago 279MB
boschrexroth-laserlocalization-client lls-1.6.0-final 38f473baf69f 7 months ago 287MB
$ docker image rm a64c3137f1d8 38f473baf69f
Untagged: boschrexroth-laserlocalization-server:lls-1.6.0-final
Deleted: sha256:a64c3137f1d857732fdd8b2159acb1aac1d9e9f333f01b641d9a4b4aa909bc27
Deleted: sha256:99476716e9e6ce39cd22ba479c9b78ec268950c795e2a4582d54fa7a3bce405b
Deleted: sha256:e9a34d6df64c0fc8469af29d9235c1a0fe75cbc9330091ad67e4d8495403b617
Deleted: sha256:4729c7104ed2f093a93386ec88f956d020748c7e8d12396a618999d2f439edc5
Deleted: sha256:d8c68c33b42b77d874e514a544cc35fb7f71a6ef837f7efa398d1fbe06bbe814
Deleted: sha256:bba82519787a080b2356017e8288b964082b6b90a54f8850162bf6ad269658f4
Untagged: boschrexroth-laserlocalization-client:lls-1.6.0-final
Deleted: sha256:38f473baf69f975ee6a0fbd492cf0540fc741e926dd69436e80772603b61fdb1
Deleted: sha256:087a9b27a4c5a2a13dec7e0545dfdd8aa1f1c53c4ab2697fe2d6fe8215e30801
Deleted: sha256:89bae1833eeab9bb9b33889044c9cb750ef501b4d1c81da9abd3f80827a62894
Deleted: sha256:f1695884f983fed4f98d42cbc6ddc5426daadab3bc84ff75e68c0c09b739ff1e
Deleted: sha256:1546005060a9e3945e503e074bcac51a84b3ac4871fe2c3bed617017cf47510b
Deleted: sha256:0d10d11a422d03c1d542585d8d176e97822b98c354a0e49f5ce3c4c8043352ae
3.2.4 载入镜像 Load images
两个image,分别是Locator client与Locator server.
bosch@mekotronics-r58x:~$ cd rokit/Locator-1.6.4/Build/
bosch@mekotronics-r58x:~/rokit/Locator-1.6.4/Build$ ls
armv8-64 codemeter_7.10.4196.501_amd64.deb corei7-64 createRexrothDockerContainer.sh LLSInterfaceCodeExamples TLSCerts
bosch@mekotronics-r58x:~/rokit/Locator-1.6.4/Build$ docker load -i armv8-64/boschrexroth-laserlocalization-client.docker
d55a100a6241: Loading layer [==================================================>] 134.8MB/134.8MB
1754f7a02001: Loading layer [==================================================>] 59.9kB/59.9kB
2ed21c2f2b29: Loading layer [==================================================>] 643.1kB/643.1kB
606d6eb15e44: Loading layer [==================================================>] 124.4kB/124.4kB
308e1f41357c: Loading layer [==================================================>] 137.4MB/137.4MB
Loaded image: boschrexroth-laserlocalization-client:lls-1.6.4-final-armv8-64
bosch@mekotronics-r58x:~/rokit/Locator-1.6.4/Build$ docker load -i armv8-64/boschrexroth-laserlocalization-server.docker
e97962ea839e: Loading layer [==================================================>] 131.4MB/131.4MB
10b2f2001cfa: Loading layer [==================================================>] 59.9kB/59.9kB
9811fdee3482: Loading layer [==================================================>] 303.1kB/303.1kB
225619935a49: Loading layer [==================================================>] 116.2kB/116.2kB
cd44698208a3: Loading layer [==================================================>] 133.6MB/133.6MB
Loaded image: boschrexroth-laserlocalization-server:lls-1.6.4-final-armv8-64
bosch@mekotronics-r58x:~/rokit/Locator-1.6.4/Build$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
boschrexroth-laserlocalization-server lls-1.6.4-final-armv8-64 723c9c00695f 3 weeks ago 262MB
boschrexroth-laserlocalization-client lls-1.6.4-final-armv8-64 5ad8c7fd7dae 3 weeks ago 269MB
3.3 启动Locator容器
-
注意在虚拟机中写入容器启动脚本
这么麻烦的原因是docker创建的虚拟机是只读层,只能在容器中添加容器启动的脚本命令,请按照步骤将容器的启动脚本安装到虚拟的Linux上
docker run --privileged -it -v /var/run/docker.sock:/var/run/docker.sock jongallant/ubuntu-docker-client
docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --privileged --rm -v /:/host alpine -v -v /home/sh:/home/sh /bin/sh
cd /home/sh
vi createRexrothDockerContainerArm.sh
#注意:这里复制createRexrothDockerContainer.sh中的内容粘贴到创建的文件中,esc->:wq->回车保存
#(这么麻烦的原因是docker创建的虚拟机是只读层,只能在容器中添加文件)
chmod 777 createRexrothDockerContainerArm.sh
chroot /host
cd /home/sh
-
检查容器 Check running containers
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6111ad48ba52 boschrexroth-laserlocalization-server:lls-1.6.4-final-armv8-64 "/usr/bin/bstarter" 14 minutes ago Up 14 minutes 0.0.0.0:8082->8082/tcp, :::8082->8082/tcp, 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp, 0.0.0.0:8445->8445/tcp, :::8445->8445/tcp, 0.0.0.0:8449->8449/tcp, :::8449->8449/tcp, 0.0.0.0:9000-9001->9000-9001/tcp, :::9000-9001->9000-9001/tcp, 0.0.0.0:9015->9015/tcp, :::9015->9015/tcp, 0.0.0.0:9017-9018->9017-9018/tcp, :::9017-9018->9017-9018/tcp, 0.0.0.0:9440-9441->9440-9441/tcp, :::9440-9441->9440-9441/tcp, 0.0.0.0:9455->9455/tcp, :::9455->9455/tcp, 0.0.0.0:9457-9458->9457-9458/tcp, :::9457-9458->9457-9458/tcp, 0.0.0.0:21638-21643->21638-21643/tcp, :::21638-21643->21638-21643/tcp BoschRexrothLocalizationServer 2e2207e9c106 boschrexroth-laserlocalization-client:lls-1.6.4-final-armv8-64 "/usr/bin/bstarter" 14 minutes ago Up 14 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8084->8084/tcp, :::8084->8084/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp, 0.0.0.0:8447->8447/tcp, :::8447->8447/tcp, 0.0.0.0:9002-9014->9002-9014/tcp, :::9002-9014->9002-9014/tcp, 0.0.0.0:9016->9016/tcp, :::9016->9016/tcp, 0.0.0.0:9019-9020->9019-9020/tcp, :::9019-9020->9019-9020/tcp, 0.0.0.0:9442-9454->9442-9454/tcp, :::9442-9454->9442-9454/tcp, 0.0.0.0:9456->9456/tcp, :::9456->9456/tcp, 0.0.0.0:6060-6061->6060-6061/udp, :::6060-6061->6060-6061/udp, 0.0.0.0:9459-9460->9459-9460/tcp, :::9459-9460->9459-9460/tcp BoschRexrothLocalizationClient