搭建一个Kasm Workspaces

KASM简介

最近在翻linuxserver的时候发现有一部分镜像运行起来之后是通过VNC连接可以直接拥有一个图形化界面的桌面,例如rdesktopchrome。接着我发现了一个好玩的叫kasm,点进这个链接可以看到这里所有的镜像都是这个类型。

当我看到kasmweb镜像里的这个动图的时候大概明白了,这不就是公司的云桌面吗:

img

再继续了解kasm,大概知道了这是一个通过HTTP转发VNC的程序,并且Worker是运行在容器里的,非常轻量。如上面的动图所示,点击chrome,kasm自动创建一个chrome的容器,点击ubuntu也能自动创建一个ubuntu的容器。

于是,今天花了一天时间来搭建Kasm Workspaces

搭建Kasm Workspaces

翻阅文档可以可知官方提供的安装方式:

1
2
3
4
5
6
7
cd /tmp
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.16.0.a1d5b7.tar.gz
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_service_images_amd64_1.16.0.a1d5b7.tar.gz
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_workspace_images_amd64_1.16.0.a1d5b7.tar.gz
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_plugin_images_amd64_1.16.0.a1d5b7.tar.gz
tar -xf kasm_release_1.16.0.a1d5b7.tar.gz
sudo bash kasm_release/install.sh --offline-workspaces /tmp/kasm_release_workspace_images_amd64_1.16.0.a1d5b7.tar.gz --offline-service /tmp/kasm_release_service_images_amd64_1.16.0.a1d5b7.tar.gz --offline-plugin /tmp/kasm_release_plugin_images_amd64_1.16.0.a1d5b7.tar.gz

我这里用的是docker安装:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
services:
  kasm:
    image: lscr.io/linuxserver/kasm:1.16.0-develop
    container_name: kasm
    privileged: true
    security_opt:
      - apparmor:rootlesskit #optional
    environment:
      - KASM_PORT=8443
    volumes:
      - ./optdata:/opt
      #- /dev/input:/dev/input #optional
    ports:
      - 3000:3000
      - 8443:8443

容器运行后先打开3000端口设置账号密码,并且安装必要的插件。安装完打开8443端口就是这个界面了:

image-20240929010029353

设置里有一些常用的镜像,甚至还能运行DOOM:

image-20240929010417270

运行Ubuntu Noble这个应用, 可以从浏览器打开一个ubuntu desktop并且有内置一些常见的工具:

image-20240929010637659

如果用docker运行kasm的话就会发现整个应用是跑的docker in docker:

image-20240929011020595

不过目前来看,里面的大部分应用是不支持中文的,并且跑kasm会占用掉我服务器2个G的内存,不太适合长期使用。

updatedupdated2024-09-292024-09-29