在 sysbox 运行时使用 Docker Swarm 时,有没有办法指定机密的 UID

问题描述 投票:0回答:1

我正在尝试将 Docker Swarm 与 sysbox 运行时一起使用。对于我的一项服务,我想设置秘密挂载的 UID:

services:
  service1:
    secrets:
      - source: secretname
        uid: "1234"

这用于正常的 Docker 运行时。但是,在使用 sysbox 运行时时它没有任何效果。该秘密被安装为用户“nobody”。我认为这是因为 sysbox 使用 ID 映射安装。

使用 sysbox 时还有办法指定秘密挂载的 uid、gid 和模式吗?

docker-swarm
1个回答
0
投票

(在通过 Nestybox-Support Slack 工作区获得 Cesar Talledo 的帮助后回答我自己的问题)

秘密安装在 tmpfs 文件系统中。运行 findmnt 证实了这一点:

├─/run/secrets/secret_name     tmpfs[/te7tlwvwcrcyska47ga4vaj8i]             tmpfs    ro,relatime

Sysbox 尝试在 tmpfs 挂载之上使用 idmapped-mounts,但 tmpfs 直到内核 6.3+ 才支持 idmapped-mounts。我使用的是 WSL2,内核版本为 5.15。

要使可配置的 UID 正常工作,您需要:

  • 升级内核至6.3+
  • 使用 shiftfs 内核模块(它提供了适用于 tmpfs 的 idmapping 的替代形式)

由于我正在使用 WSL,这两个选项目前似乎都不可行:

  • 撰写本文时 WSL2 的最大内核版本是 6.1
  • 安装树外内核模块似乎不可能
© www.soinside.com 2019 - 2024. All rights reserved.