共享内存通道

功能描述

系统容器提供容器与主机进程通过共享内存进行通信的功能,通过在容器创建时配置--host-channel参数,可以在容器与主机之间共享同一tmpfs,从而达到主机与容器间通信的功能。

参数说明

命令

参数

参数指定值说明

isula create/run

--host-channel

  • 字符串变量,格式为:
    <host path>:<container path>:<rw/ro>:<size limit>
  • 参数说明如下:

    <host path>:将在宿主机上挂载tmpfs的路径,必须是绝对路径。

    <container path>:将在容器内挂载tmpfs的路径,必须是绝对路径。

    <rw/ro>:在容器内挂载的文件系统的使用权限,只能配置为rw(可读写)或ro(只读),默认为rw。

    <size limit>:挂载的tmpfs能够使用的最大限制,最小支持1物理页(4KB),最大支持系统总物理内存的1/2 。默认为64MB。

约束限制

  • 宿主机上挂载的tmpfs的生命周期为从容器启动到容器删除,容器删除并解除对空间的占用后会移除这片空间。
  • 容器删除时会将宿主机上挂载tmpfs的路径删除,所以不允许使用宿主机上已存在的目录。
  • 为了宿主机上非root用户运行的进程能够与容器内进行通信,宿主机上tmpfs挂载的权限为1777。

使用示例

创建容器时指定--host-channel参数:

[root@localhost ~]# isula run --rm -it --host-channel /testdir:/testdir:rw:32M --system-container --external-rootfs /root/myrootfs none init 
root@3b947668eb54:/# dd if=/dev/zero of=/testdir/test.file bs=1024 count=64K 
dd: error writing '/testdir/test.file': No space left on device 
32769+0 records in 
32768+0 records out 
33554432 bytes (34 MB, 32 MiB) copied, 0.0766899 s, 438 MB/s

说明:

  • 使用–host-channel大小限制时,若在容器内创建共享文件,则会受到容器内的内存配额限制(在容器内存使用达到极限时可能会产生oom)。
  • 若用户在主机端创建共享文件,则不受容器内的内存配额限制。
  • 若用户需要在容器内创建共享文件,且业务为内存密集型,可以通过设置容器内存配额为在原本基础上加上–host-channel配置的大小来消除影响。

文档捉虫

“有虫”文档片段

问题描述

提交类型 issue
有点复杂...
找人问问吧。
PR
小问题,全程线上修改...
一键搞定!
问题类型
规范和低错类

● 错别字或拼写错误;标点符号使用错误;

● 链接错误、空单元格、格式错误;

● 英文中包含中文字符;

● 界面和描述不一致,但不影响操作;

● 表述不通顺,但不影响理解;

● 版本号不匹配:如软件包名称、界面版本号;

易用性

● 关键步骤错误或缺失,无法指导用户完成任务;

● 缺少必要的前提条件、注意事项等;

● 图形、表格、文字等晦涩难懂;

● 逻辑不清晰,该分类、分项、分步骤的没有给出;

正确性

● 技术原理、功能、规格等描述和软件不一致,存在错误;

● 原理图、架构图等存在错误;

● 命令、命令参数等错误;

● 代码片段错误;

● 命令无法完成对应功能;

● 界面错误,无法指导操作;

风险提示

● 对重要数据或系统存在风险的操作,缺少安全提示;

内容合规

● 违反法律法规,涉及政治、领土主权等敏感词;

● 内容侵权;

您对文档的总体满意度

非常不满意
非常满意
提交
根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。