气泡包装容器

bubblewrap 容器使用 bubblewrap 工具创建新的内核命名空间,并在与系统其他部分隔离的沙盒中运行请求的二进制文件。这是 Linux Flatpak 生态系统 中使用的底层技术。有关使用测试应用程序的示例设置,请参阅 Bubblewrap 容器示例

目标系统上至少需要安装 bubblewrap 版本 0.5。尽管如此,推荐使用最新的上游版本。

bubblewrap 容器作为插件构建和加载,但默认情况下未启用。可以通过应用程序管理器的配置文件并使用其唯一的 ID(bubblewrap)来配置它。

containers:
  bubblewrap:
    sharedNamespaces: [ '-all', '+net' ]
    bindMountHome: yes
    configuration:
      symlink:
        usr/lib: '/lib'
        usr/lib64: '/lib64'
        usr/bin: [ '/bin', '/sbin' ]
      ro-bind:
        /usr/bin: '/usr/bin'
        /usr/lib: '/usr/lib'
        /usr/lib64: '/usr/lib64'
        /etc: '/etc'
        /usr/share/fonts: '/usr/share/fonts'
        /usr/share/fontconfig: '/usr/share/fontconfig'
        /usr/share/ca-certificates: '/usr/share/ca-certificates'
        /sys/dev/char: '/sys/dev/char'
        ${CONFIG_PWD}/imports: '${CONFIG_PWD}/imports'
      ro-bind-try:
        '/sys/devices/pci0000:00': '/sys/devices/pci0000:00'
        /usr/share/glvnd/egl_vendor.d: '/usr/share/glvnd/egl_vendor.d'
        /usr/share/X11/xkb: '/usr/share/X11/xkb'
        /run/resolvconf: '/run/resolvconf'
      dev: '/dev'
      dev-bind:
        /dev/dri: '/dev/dri'
      tmpfs:
        /tmp
      proc:
        /proc

bubblewrap 容器接受以下配置设置

设置名称类型描述
bwrap-locationstringbwrap 二进制的路径。如果没有配置路径,则使用标准的 $PATH 来查找可执行文件。
configurationobject用于配置插件沙盒化的双层映射对象。顶层 keys 被转换成传递给 bubblewrap 二进制文件的可选项。值本身用作用户选项的参数。以下是一个配置示例:
configuration:
  symlink:
    usr/lib: '/lib'
    usr/lib64: '/lib64'
    usr/bin: [ '/bin', '/sbin' ]
  ro-bind:
    /usr/bin: '/usr/bin'
    /usr/lib: '/usr/lib'
    /usr/lib64: '/usr/lib64'
bindMountHomebool将当前用户的整个 Home 目录挂载到容器中。这可以用于开发目的。(默认:false)
sharedNamespaceslist<string>这为您提供了对与容器共享(或未共享)的内核命名空间的细粒度控制。以下命名空间受支持:all, net, user, ipc, pid, net, uts, cgroup。每个条目都必须以+-开头,以指示是否应共享该命名空间。第一项必须是 all 并设置基线:您可以先取消共享所有内容然后再共享特定的命名空间(《-all, +pid, +ipc》),或者您可以先共享所有内容然后再取消共享单个命名空间(《+all, -net》)。(默认:-all
networkSetupScriptstring要执行的 shell 脚本的路径,该脚本在容器启动和停止时执行,以便正确设置和关闭容器的网络。有关示例脚本,请参阅 Bubblewrap 容器示例

注意:如果您设置了此选项:sharedNamespaces: [ '-all', '+net' ],那么您可能希望共享网络命名空间。

unshareNetworkstring已弃用。请使用 sharedNamespacesnetworkSetupScript

© 2024 Qt公司限有限公司。本期内提供的文档贡献均为其各自所有者的版权。所提供的文档受自由软件基金会发布的GNU自由文档许可证版本1.3条款下的许可。Qt及其相关商标为芬兰及全球其他国家的Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。