1 简介
容器为你提供了一个方法来打包与系统其余部分隔离的应用程序,并可在不同的VxWorks目标板上移植和共享,VxWorks的容器支持是符合OCI兼容的的。
VxWorks是由风河(Wind River)提供的一个实时操作系统(RTOS),本文描述了如何配置VxWorks 7来支持容器,以及将一个容器部署到VxWorks的ROMFS文件系统上。虽然远程容器管理是支持的,本文并不会介绍如何从Docker Hub, Amazon或Harbor上来部署和获取容器,我们将会在另一篇文章中介绍。
2 前提条件
以下的指导步骤假设你正在使用:
一个Intel x86的目标机:
-有网络支持
-配置成能够启动VxWorks
一个Windows工作站:
-安装有Wind River VxWorks 7, SR21.03
我们认为你已经将你的工作站配置可以使用buildah的工具,这是用来编译一个OCI兼容的容器,更多细节信息,请参考VxWorks容器程序员执导,为容器配置编译工作站。
3 相关的文档
风河文档:
VxWorks容器程序员指南
4 准备使能了容器的VxWorks项目
4.1 创建并编译容器的VxWorks源码编译(VSB)项目
打开一个Windows命令行shell,配置编译环境,然后添加容器库到一个新创建的VxWorks源码编译(VSB)项目中:
cd <WIND_HOME> // your installation directory
wrenv -p vxworks\21.03 C:\Windows\sysnative\cmd.exe
cd <YOUR_WORKSPACE> // your workspace
vxprj vsb create -S -bsp itl_generic -smp -lp64 containersVSB
cd containersVSB // your VSB directory
// add the Containers runtime
vxprj vsb layer add CONTAINER_RUNTIME
// add the Containers manager
vxprj vsb layer add CONTAINER_MANAGER
// add the Containers Examples
vxprj vsb layer add PYTHON
vxprj vsb layer add CONTAINER_EXAMPLES
vxprj vsb config -s -add _WRS_CONFIG_CONTAINER_PYTHON_WEB_SERVER=y
// Build the VSB
make -j 16
cd ..
4.2 创建并编译容器的VxWorks镜像项目(VIP)
按照如下步骤来创建VxWorks镜像项目(VIP)
vxprj vip create -vsb containersVSB itl_generic llvm -profile PROFILE_DEVELOPMENT containersVIP
cd containersVIP
// enable VIP container components
vxprj vip component add INCLUDE_CONTAINER_RUNTIME INCLUDE_CONTAINER_SHELL_CMD
vxprj vip component add INCLUDE_DISK_UTIL INCLUDE_RAM_DISK
vxprj parameter set RAM_DISK_SIZE 0x4000000
// enable PYTHON and ROMFS
vxprj component add INCLUDE_PYTHON_SUPPORT INCLUDE_ROMFS
mkdir romfs
4.3 拷贝例子容器到VIP
robocopy /s ..\containersVSB\usr\containers\web_server romfs
4.4 编译VIP
vxprj build
5 运行VxWorks容器
5.1 用此VIP VxWorks镜像文件来启动目标机
用常规的方法将你刚编译的VxWorks内核镜像部署到你的目标机上,然后启动目标机上的VxWorks.
5.2 识别目标机的网络IP地址
在VxWorks的内核shell上运行:
-> ifconfig
.
.
.
gei0 Link type:Ethernet HWaddr 7a:7a:9a:00:00:02
inet 10.0.10.2 mask 255.255.255.0 broadcast 10.0.10.3
.
.
.
value = 0 = 0x0
->
5.3 解压缩并运行网页服务器的VxWorks容器
在VxWorks的内核shell上运行:
-> cmd
[vxWorks *]# vxc unpack --image /romfs/web_server.oci /ram0/bundle
[vxWorks *]# vxc run --detach --bundle /ram0/bundle web_server
Starting server using port 8888
5.4 在你的工作站上打开一个网页浏览器来验证例子容器正在运行
假设目标机的ip地址是 10.0.10.2,在你的浏览器框中输入 http://10.0.10.2:8888,你可以在浏览器上看到一个示例的Wind River网页。