Minimal Chromium with KasmVNC/noVNC, CDP, and Clipboard sync
890
专为 AI Agent(Claude Computer Use / AutoGPT / Browser-Use)、自动化测试(Playwright / Puppeteer)与远程云桌面 设计的高性能轻量 Chromium 容器镜像。
支持纯 Web 浏览器访问图形界面、双向原生剪贴板秒同步、开启 9222 端口 Chrome DevTools Protocol (CDP),并内置防崩溃/防关闭自愈守护机制。
:latest /:novnc):经典轻量化实现,同时支持 HTTP (6080) 与 HTTPS (6443) 双端口。:kasmvnc):采用流媒体级动态编码(WebP / H.264),支持 60FPS 丝滑体验与原生浏览器剪贴板无缝同步。Ctrl+C / Ctrl+V 实时无缝互通,彻底摒弃多余的侧边栏中转。--remote-allow-origins=*,解决高版本 Chromium 强制绑定 127.0.0.1 和跨域 403 问题。--no-sandbox 警告横幅(--test-type),避免视口挤压造成点击坐标偏移。font-wqy-zenhei),杜绝中文网页文字排版“方块豆腐块”。X 或关闭最后一个标签页时,系统会在 1 秒内自动重新拉起浏览器,彻底告别黑屏。| 对比维度 | KasmVNC 版 (:latest / :kasmvnc) | noVNC minimal版 (:novnc) |
|---|---|---|
| 底包系统 | Debian 12 (Bookworm) Slim | Alpine Linux 3.20 |
| 画质与流畅度 | 60 FPS(流媒体编码,滑动/视频极顺滑) | 15~25 FPS(传统图片块传输) |
| 剪贴板体验 | 原生无缝秒同步(无需任何侧边栏) | HTTPS 原生同步;HTTP 需使用侧边栏 |
| 默认 Web 端口 | HTTPS: 8444 | HTTP: 6080 / HTTPS: 6443 |
| 推荐适用场景 | 日常使用、长时间交互、AI Agent 视觉调试 | 仅做轻量挂机、需要内网纯 HTTP 环境 |
docker run 直接运行docker run -d \
--name chromium-kasm \
-p 8444:8444 \
-p 127.0.0.1:9222:9222 \
-e VNC_USER=admin \
-e VNC_PASSWORD="MySecurePassword123" \
-e RESOLUTION=1920x1080 \
-v chromium_data:/data \
wimotek/imnimal-chromium:latest \
https://www.google.com
services:
chromium:
image: wimotek/imnimal-chromium:latest
container_name: chromium
ports:
- "8444:8444" # KasmVNC Web 端 (HTTPS)
- "127.0.0.1:9222:9222" # 核心保护:CDP 仅允许宿主机访问
environment:
- VNC_USER=admin
- VNC_PASSWORD=MySecurePassword123
- RESOLUTION=1920x1080
- HOMEPAGE=https://www.google.com
volumes:
- chromium_data:/data
restart: unless-stopped
volumes:
chromium_data:
Web 访问地址:https://<服务器IP>:8444
默认账号密码:admin / MySecurePassword123
剪贴板同步:首次进入页面浏览器提示“请求剪贴板权限”时点击允许,即可使用 Ctrl+C / Ctrl+V。
docker run -d \
--name chromium-novnc \
-p 6080:6080 \
-p 6443:6443 \
-p 127.0.0.1:9222:9222 \
-e VNC_PASSWORD="MySecurePassword123" \
-e RESOLUTION=1920x1080 \
-v chromium_data:/data \
wimotek/imnimal-chromium:novnc \
https://www.bing.com
HTTP 访问:http://<服务器IP>:6080 HTTPS 访问:https://<服务器IP>:6443(支持原生无缝剪贴板)
curl http://127.0.0.1:9222/json/version
import asyncio from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.connect_over_cdp("http://127.0.0.1:9222")
context = browser.contexts[0]
page = context.pages[0] if context.pages else await context.new_page()
await page.goto("https://github.com")
# 模拟真人输入(逐字打字延迟,无需系统安装中文输入法)
await page.locator("input[name='q']").press_sequentially("AI Agent", delay=150)
await page.keyboard.press("Enter")
print("Title:", await page.title())
asyncio.run(main())
严禁将 9222 直接开放给公网 0.0.0.0。推荐在本地电脑通过 SSH 建立加密通道:
Bash
ssh -N -L 9222:127.0.0.1:9222 root@<公网服务器IP>
随后本地代码连接 http://127.0.0.1:9222 即可。
| 变量名 | 默认值 | 说明 |
|---|---|---|
RESOLUTION | 1920x1080 | 屏幕分辨率(如 1280x800, 2560x1440) |
DEPTH | 24 | 色深(推荐保持 24) |
VNC_USER | admin | KasmVNC 登录用户名(仅限 KasmVNC 版) |
VNC_PASSWORD | 无(空) | Web 访问密码(公网部署强烈建议设置) |
HOMEPAGE | about:blank | 容器启动时默认打开的网址 |
CHROME_ARGS | 无(空) | 注入 Chromium 的额外参数(如 --incognito) |
可以在 docker run 命令末尾直接附加网址或参数:
Bash
# 启动时打开指定网址
docker run -d -p 8444:8444 wimotek/imnimal-chromium:latest https://news.ycombinator.com
# 启动时以无痕模式打开多个标签页
docker run -d -p 8444:8444 wimotek/imnimal-chromium:latest --incognito https://github.com https://google.com
本项目基于 MIT 许可证 开源。
Content type
Image
Digest
sha256:aadae3366…
Size
302.8 MB
Last updated
about 6 hours ago
docker pull wimotek/minimal-chromium