气泡包装容器
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:
/procbubblewrap 容器接受以下配置设置
| 设置名称 | 类型 | 描述 |
|---|---|---|
bwrap-location | string | 到 bwrap 二进制的路径。如果没有配置路径,则使用标准的 $PATH 来查找可执行文件。 |
configuration | object | 用于配置插件沙盒化的双层映射对象。顶层 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' |
bindMountHome | bool | 将当前用户的整个 Home 目录挂载到容器中。这可以用于开发目的。(默认:false) |
sharedNamespaces | list<string> | 这为您提供了对与容器共享(或未共享)的内核命名空间的细粒度控制。以下命名空间受支持:all, net, user, ipc, pid, net, uts, cgroup。每个条目都必须以+或-开头,以指示是否应共享该命名空间。第一项必须是 all 并设置基线:您可以先取消共享所有内容然后再共享特定的命名空间(《-all, +pid, +ipc》),或者您可以先共享所有内容然后再取消共享单个命名空间(《+all, -net》)。(默认:-all) |
networkSetupScript | string | 要执行的 shell 脚本的路径,该脚本在容器启动和停止时执行,以便正确设置和关闭容器的网络。有关示例脚本,请参阅 Bubblewrap 容器示例。 注意:如果您设置了此选项: |
unshareNetwork | string | 已弃用。请使用 sharedNamespaces 和 networkSetupScript。 |
© 2024 Qt公司限有限公司。本期内提供的文档贡献均为其各自所有者的版权。所提供的文档受自由软件基金会发布的GNU自由文档许可证版本1.3条款下的许可。Qt及其相关商标为芬兰及全球其他国家的Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。