工具
n.eko
通过 WebRTC 使用 VSCode
n.eko自称是一个利用 WebRTC 技术的在 Docker 中运行的浏览器,但实际上,它可以运行任何在 Linux 上可以运行的程序,包括 VSCode 。
有一个 neko-apps 项目,其中包括了一些封装好的 neko 应用,其中虽然列出了 vscode,但是在官方镜像里并没有列出,但是文档中给出了如何自己构建 vscode 镜像。
构建 neko vscode 镜像
确保你的 Linux 下已经准备好了 Docker。
下载 neko-apps 项目,然后在项目根目录命令行中执行:
./build --application vscode --base_image m1k1o/neko:base如果一切正常,就会出现构建出来的镜像 tag,可以使用 docker tag 命令改成你自己的,推送到你的镜像仓库。
运行 neko vscode 镜像
准备 docker-compose.yaml:
services:
neko:
image: "[your-neko-vscode-image-tag]"
restart: "unless-stopped"
shm_size: "2gb"
ports:
- "8080:8080"
- "52000-52100:52000-52100/udp"
environment:
NEKO_DESKTOP_SCREEN: 1920x1080@30
NEKO_MEMBER_MULTIUSER_USER_PASSWORD: neko
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: admin
NEKO_WEBRTC_EPR: 52000-52100
NEKO_WEBRTC_ICELITE: 1
NEKO_NAT1TO1: [your-host-ip-address]
NEKO_CERT: /certs/cert.pem
NEKO_KEY: /certs/key.pem
privileged: true
volumes:
- /volume3/docker/neko/certs/:/certs/:ro需要注意的是 NEKO_NAT1TO1 应该是你的 Docker 主机的 IP 。
为了实现虚拟桌面的剪切板互通,需要采用 HTTPS 方式访问,这就需要配置证书。可以使用以下命令创建自签名的证书:
# 生成私钥
openssl genrsa -out key.pem 2048
# 生成证书签名请求(CSR)
openssl req -new -key key.pem -out cert.csr
# 生成自签名证书(有效期365天)
openssl x509 -req -days 365 -in cert.csr -signkey key.pem -out cert.pem将证书复制到合适的位置,就可以运行 docker compose 了。
通过浏览器访问 https://[your-host-ip-address]:8080,默认会有两个用户:
- neko
- admin
密码在 docker-compose.yaml 已经指定。输入 admin 账号密码,即可看到 VSCode 了:
