Kasm Workspaces 是一个容器流式传输平台,通过基于浏览器的方式提供对桌面、应用程序和 Web 服务的访问,采用容器化桌面基础设施 (CDI) 创建按需、一次性的 Docker 容器,适用于远程浏览器隔离、数据防泄漏、桌面即服务等场景。
收藏数: 107
下载次数: 459615
类型:
linuxserver/kasmKasm Workspaces 是一个 Docker 容器流式传输平台,用于提供基于浏览器的桌面、应用程序和 Web 服务访问。Kasm 利用 DevOps 支持的容器化桌面基础设施 (CDI) 创建按需、一次性的 Docker 容器,可通过 Web 浏览器访问。典型用例包括远程浏览器隔离 (RBI)、数据防泄漏 (DLP)、桌面即服务 (DaaS)、安全远程访问服务 (RAS) 和开源情报 (OSINT) 收集。
图形化容器的渲染由开源项目 KasmVNC 提供支持。
该镜像利用 Docker 清单实现多平台支持。只需拉取 lscr.io/linuxserver/kasm:latest 即可获取适合您架构的正确镜像,也可通过标签拉取特定架构的镜像。
支持的架构:
| 架构 | 可用 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
此容器使用 Docker in Docker,需要以 privileged(特权)模式运行。容器初始设置需通过 3000 端口进行。
与其他容器不同,Web 界面端口(默认 443)需要通过环境变量 KASM_PORT 设置,且内部和外部端口需保持一致,例如使用 4443 端口时,需设置 KASM_PORT=4443 并映射 -p 4443:4443
Unraid 用户注意:由于 DinD 存储层限制,/opt/ 应直接挂载到磁盘(如 /mnt/disk1/appdata/path),或最优选择挂载到缓存磁盘(如 /mnt/cache/appdata/path)
通过 https://您的 IP:3000 访问安装向导并按照说明操作。设置完成后,通过 https://您的 IP:443 访问,使用设置过程中输入的凭据登录。默认用户如下:
目前不支持群晖系统,因为其内核阻止 CPU 调度。
要更新 Kasm,首先确保使用最新的 Docker 镜像,然后在管理面板中执行应用内更新。仅更新 Docker 镜像和重新创建容器不会更新 Kasm。
安装过程中会提供一个选项,强制所有工作区容器挂载并使用特定 GPU。如果使用 NVIDIA GPU,需传递 -e NVIDIA_VISIBLE_DEVICES=all 或 --gpus all,并在主机上安装 NVIDIA Container Runtime。此外,Kasm Workspaces 对 NVIDIA 有原生支持,您也可选择使用该原生支持而非安装时的手动覆盖。
要正确创建虚拟游戏手柄,需从主机挂载 /dev/input 和 /run/udev/data。有关启用游戏手柄支持的说明,请参见此处。
要在工作区中使用持久化配置文件,需从主机挂载一个文件夹到 /profiles。配置工作区时,可将“持久化配置文件路径”设置为例如 /profiles/ubuntu-focal/{username}/,更多信息见此处。
SWAG 的示例配置可在此处找到。安装后,需按照此处所述,将默认区域下的“代理端口”设置修改为 0,以启动工作区会话。
此镜像默认使用自签名证书,因此协议为 https。如果使用验证证书的反向代理,需禁用对容器的证书检查。
以下提供 docker-compose 和 docker cli 两种方式帮助您创建容器。
[!NOTE] 除非参数标记为“可选”,否则均为必填项,必须提供值。
yaml--- services: kasm: image: lscr.io/linuxserver/kasm:latest container_name: kasm privileged: true security_opt: - apparmor:rootlesskit #可选 environment: - KASM_PORT=443 - DOCKER_HUB_USERNAME=USER #可选 - DOCKER_HUB_PASSWORD=PASS #可选 - DOCKER_MTU=1500 #可选 volumes: - /path/to/kasm/data:/opt - /path/to/kasm/profiles:/profiles #可选 - /dev/input:/dev/input #可选 - /run/udev/data:/run/udev/data #可选 ports: - 3000:3000 - 443:443 restart: unless-stopped
bashdocker run -d \ --name=kasm \ --privileged \ --security-opt apparmor=rootlesskit `#可选` \ -e KASM_PORT=443 \ -e DOCKER_HUB_USERNAME=USER `#可选` \ -e DOCKER_HUB_PASSWORD=PASS `#可选` \ -e DOCKER_MTU=1500 `#可选` \ -p 3000:3000 \ -p 443:443 \ -v /path/to/kasm/data:/opt \ -v /path/to/kasm/profiles:/profiles `#可选` \ -v /dev/input:/dev/input `#可选` \ -v /run/udev/data:/run/udev/data `#可选` \ --restart unless-stopped \ lscr.io/linuxserver/kasm:latest
容器通过运行时传递的参数进行配置,格式为 <外部>:<内部>。例如,-p 8080:80 表示将容器内的 80 端口映射到主机的 8080 端口。
| 参数 | 功能 |
|---|---|
-p 3000:3000 | Kasm 安装向导端口(https)。 |
-p 443:443 | Kasm Workspaces 界面端口(https)。 |
-e KASM_PORT=443 | 指定 Kasm Workspaces 绑定到外部的端口。 |
-e DOCKER_HUB_USERNAME=USER | 可选,指定用于拉取私有镜像的 DockerHub 用户名。 |
-e DOCKER_HUB_PASSWORD=PASS | 可选,指定用于拉取私有镜像的 DockerHub 密码。 |
-e DOCKER_MTU=1500 | 可选,指定传递给 dockerd 的 mtu 选项。 |
-v /opt | Docker 和安装存储路径。 |
-v /profiles | 可选,指定持久化配置文件存储路径。 |
-v /dev/input | 可选,用于游戏手柄支持。 |
-v /run/udev/data | 可选,用于游戏手柄支持。 |
--security-opt apparmor=rootlesskit | 部分主机需要此选项,以确保 DinD 层内的命名空间正常工作。 |
您可以通过特殊前缀 FILE__ 从文件设置任何环境变量。例如:
bash-e FILE__MYVAR=/run/secrets/mysecretvariable
这会根据 /run/secrets/mysecretvariable 文件的内容设置环境变量 MYVAR。
我们的所有镜像都支持使用可选的 -e UMASK=022 设置来覆盖容器内服务的默认 umask。请注意,umask 不是 chmod,它基于其值减去权限而非添加。请在请求支持前阅读此处了解更多信息。
我们发布了各种 Docker Mods 以启用容器内的附加功能。上述动态徽章可访问此镜像的可用 Mods 列表(如有)以及可应用于任何 LinuxServer 镜像的通用 Mods。
容器运行时的 Shell 访问:
bashdocker exec -it kasm /bin/bash
实时监控容器日志:
bashdocker logs -f kasm
容器版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' kasm
镜像版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/kasm:latest
我们的大多数镜像都是静态的、版本化的,需要更新镜像并重新创建容器才能更新内部应用。除了相关 readme.md 中注明的例外情况,我们不建议或支持在容器内更新应用。请参阅上面的应用设置部分,了解是否推荐对此镜像进行应用更新。
以下是更新容器的说明:
更新镜像:
所有镜像:
bashdocker-compose pull
单个镜像:
bashdocker-compose pull kasm
更新容器:
所有容器:
bashdocker-compose up -d
单个容器:
bashdocker-compose up -d kasm
还可以删除旧的悬空镜像:
bashdocker image prune
更新镜像:
bashdocker pull lscr.io/linuxserver/kasm:latest
停止运行中的容器:
bashdocker stop kasm
删除容器:
bashdocker rm kasm
使用上述相同的 docker run 参数重新创建新容器(如果正确映射到主机文件夹,您的 /config 文件夹和设置将被保留)
还可以删除旧的悬空镜像:
bashdocker image prune
[!TIP] 我们推荐使用 Diun 获取更新通知。不建议或支持使用其他自动无人值守更新容器的工具。
如果您想为开发目的对这些镜像进行本地修改或自定义逻辑:
bashgit clone [***] cd docker-kasm docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/kasm:latest .
可以使用 lscr.io/linuxserver/qemu-static 在 x86_64 硬件上构建 ARM 变体,反之亦然:
bashdocker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
注册后,可以使用 -f Dockerfile.aarch64 指定要使用的 dockerfile。
以下是 linuxserver/kasm 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务