从扩展后端使用 Docker socket


扩展可以通过 SDK 直接从前端调用 Docker 命令。

在某些情况下,还需要从后端与 Docker Engine 进行交互。

扩展后端容器可以挂载 Docker socket,并使用它与 Docker Engine 进行交互,从扩展后端逻辑中操作。了解更多关于 Docker Engine socket 的信息。

然而,当从驻留在 Desktop 虚拟机中的扩展容器挂载 Docker socket 时,需要从虚拟机内部挂载 Docker socket,而不是从主机文件系统挂载 /var/run/docker.sock(使用主机的 Docker socket 可能会导致容器中的权限问题)。

为此,可以使用 /var/run/docker.sock.raw。Docker Desktop 会挂载驻留在 Desktop 虚拟机中的 socket,而不是来自主机的 socket。

services:
  myExtension:
    image: ${DESKTOP_PLUGIN_IMAGE}
    volumes:
      - /var/run/docker.sock.raw:/var/run/docker.sock