禁止套娃?在浏览器里运行浏览器 (Docker Chromium 实战)

禁止套娃?在浏览器里运行浏览器 (Docker Chromium 实战)

你是否想过,在你的 Chrome 浏览器里,再打开一个"云端"的 Chrome?

这不是什么《盗梦空间》的情节,而是 Docker 容器化技术的又一个神奇应用。通过 LinuxServer.io 推出的 chromium 镜像,我们可以在服务器(或 NAS)上运行一个完整的桌面版 Chromium 浏览器,并通过 Web 界面(KasmVNC)随时随地访问它。

🧐 为什么要这么做?

    1. 网络环境隔离:在公司内网访问外网,或者访问一些不信任的网站时,用这个容器作为"跳板",保护本机安全。
    1. 爬虫调试:在无头(Headless)模式抓取失败时,可以通过这个可视化界面看看网页到底渲染成了什么样。
    1. NAS 下载伴侣:配合 NAS,直接在服务器上下载网盘资源,省去了"下载到本地 -> 上传到 NAS"的步骤。
    1. 访问内网服务:通过它访问服务器所在的局域网设备(如路由器后台),自带"内网穿透"效果。

🚀 极速部署

我们将使用 LinuxServer 维护的 Docker 镜像。它内置了 KasmVNC,让你在浏览器里就能流畅操作远程桌面。

命令行部署 (Docker CLI)

直接复制以下命令到终端运行:

复制代码
docker run -d \
  --name=chromium \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -e CHROME_CLI=https://www.baidu.com/ `# 可选:启动时默认打开的网址` \
  -p 3000:3000 \
  -p 3001:3001 \
  -v /data/chromium/config:/config `# 请修改为你自己的本机路径` \
  --shm-size="1gb" `# 关键参数:防止浏览器崩溃` \
  --restart unless-stopped \
  lscr.io/linuxserver/chromium:latest

关键参数解析

  • --shm-size="1gb"最重要参数! 浏览器非常消耗共享内存,默认的 Docker 64MB 内存会导致页面频繁崩溃(Crash)。建议至少设置 1GB,甚至 2GB。
  • -p 3000:3000 :这是 Web 访问端口,部署后通过 http://IP:3000 访问。
  • -p 3001:3001:HTTPS 访问端口(可选)。
  • -e PUID/PGID:Linux 用户 ID,防止出现文件权限问题。
  • -e CHROME_CLI:你可以指定浏览器启动时打开哪个网页。

Docker Compose 部署 (推荐)

如果你喜欢用 docker-compose.yml 管理:

复制代码
version: "3"
services:
  chromium:
    image: lscr.io/linuxserver/chromium:latest
    container_name: chromium
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - CHROME_CLI=https://www.baidu.com/
    volumes:
      - /data/chromium/config:/config
    ports:
      - 3000:3000
      - 3001:3001
    shm_size: "1gb" # 同样别忘了这个
    restart: unless-stopped

🎮 使用体验

部署完成后,打开浏览器访问 http://你的服务器IP:3000

你会看到一个类似于 Linux 桌面的界面,里面运行着一个全屏的 Chromium 浏览器。

特色功能:

    1. 剪贴板同步:界面左侧有一个小箭头,点开后有剪贴板工具,支持本机和云端浏览器互相复制粘贴文本。
    1. 无损画质:KasmVNC 的流传输技术非常强,在局域网内几乎感觉不到延迟,看视频都行。
    1. 持久化 :你登录的账号、书签、历史记录都会保存在映射的 /config 目录里,重启容器不会丢失。

⚠️ 避坑指南

    1. 中文乱码 :默认镜像可能只有英文字体。如果你打开中文网页显示方框,需要进入容器安装中文字体:

      docker exec -it chromium bash
      apk add font-noto-cjk

      重启容器

      docker restart chromium

    1. 内存占用:Chrome 是著名的"内存吞噬者",建议给服务器预留至少 2GB 内存。
    1. 安全警告 :这个容器相当于一个可以直接访问内网的浏览器,千万不要在没有密码保护的情况下将其暴露到公网!如果必须公网访问,请配合 Nginx Proxy Manager 设置密码认证。

现在,你拥有了一个永远在线、随时待命的云端浏览器,快去试试"在浏览器里刷 B 站"的奇妙体验吧!

推荐阅读
  • • 从"上帝视角"到"全自动代理":如何打造能完成复杂任务的专属 AI Agent
  • • 在线编码工具TraeOnline
  • • 揭秘 AI 编辑器核心原理:AI 是如何"修改"你的代码的?
  • • 还在为"出海"应用发愁?亚马逊云香港服务器免费用一年,这波羊毛必须薅!

相关推荐
i建模5 小时前
在 Rocky Linux 上安装轻量级的 XFCE 桌面
linux·运维·服务器
Data_Journal5 小时前
Scrapy vs. Crawlee —— 哪个更好?!
运维·人工智能·爬虫·媒体·社媒营销
YMWM_5 小时前
不同局域网下登录ubuntu主机
linux·运维·ubuntu
zmjjdank1ng5 小时前
restart与reload的区别
linux·运维
Suchadar5 小时前
Docker常用命令
运维·docker·容器
你才是臭弟弟5 小时前
MinIo开发环境配置方案(Docker版本)
运维·docker·容器
Bruk.Liu6 小时前
Gitea Actions 的概念及基础使用
运维·ci/cd·持续集成
yanlou2336 小时前
[C++/Linux HTTP项目] HTTP服务器基于muduo高性能服务器搭载【深入详解】
运维·服务器·http·muduo库·http高性能服务器
杨江6 小时前
frp macbook 的18789到 公网服务器上,访问报错:disconnected (1008): unauthorized:
运维
天空属于哈夫克36 小时前
企微第三方 RPA API:非官方接口与官方接口的差异解析及选型建议
运维·服务器