服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用 📅 2026/6/18 3:31:59 云服务器、VPS、家里的小主机——很多时候只有 SSH没有图形桌面。但你可能仍然需要调试一个网页、登录只能内网访问的管理后台、在隔离环境里随便浏览、或者给自动化测试准备一个标准 Chrome 环境。这时候linuxserver/chrome 就派上用场了。它是 LinuxServer.io 团队维护的 Docker 镜像在容器里跑完整的 Google Chrome并通过 Web 界面远程操作——不用装桌面环境打开浏览器就能用。本文基于真实部署过程手把手带你完成镜像拉取 → 容器启动 → 浏览器访问 → 端口冲突排查。全程可复制命令踩过的坑也一并说明。一、镜像拉取先通过轩辕镜像加速拉取国内速度更稳dockerpull docker.xuanyuan.run/linuxserver/chrome:latest拉取成功后终端会显示各 Layer 下载完成并输出镜像摘要Digest想提前了解环境变量、端口说明、GPU 加速等配置可以打开 linuxserver/chrome 中文镜像页里面有完整的中文文档和一键拉取命令。这个镜像适合什么场景远程浏览器在无桌面服务器上跑 Chrome浏览器访问即可操作自动化测试提供标准化的 Chrome 环境隔离浏览在容器沙箱里访问网页与宿主机隔离开发调试临时需要一个完整浏览器又不想装桌面二、一键启动容器创建配置目录用于持久化 Chrome 用户数据和设置mkdir-p/opt/chrome/config执行以下docker run命令启动dockerrun-d\--namechrome\-ePUID1000\-ePGID1000\-eTZAsia/Shanghai\-eLC_ALLzh_CN.UTF-8\-eCUSTOM_USERadmin\-ePASSWORD你的强密码\-p3000:3000\-p3001:3001\-v/opt/chrome/config:/config\--shm-size1gb\--restartunless-stopped\docker.xuanyuan.run/linuxserver/chrome:latest关键参数说明参数作用-p 3000:3000HTTP 端口一般需反向代理日常访问建议用 3001-p 3001:3001HTTPS 端口推荐用这个访问远程 Chrome-v /opt/chrome/config:/config持久化配置、书签、登录状态等--shm-size1gb共享内存看 YouTube 等站点建议设置避免页面卡死PUID/PGID与宿主机用户 ID 一致避免卷权限问题用id命令查看TZAsia/Shanghai时区设为国内LC_ALLzh_CN.UTF-8中文界面CUSTOM_USER/PASSWORD启用 HTTP 基本认证强烈建议设置权限提示如果/opt/chrome/config出现权限问题执行sudo chown -R 1000:1000 /opt/chrome/config将 1000 换成你的 PUID/PGID。可选指定 Chrome 启动时打开的网页-eCHROME_CLIhttps://www.baidu.com三、浏览器访问远程 Chrome容器启动后在本机浏览器打开https://你的服务器IP:3001/首次访问浏览器可能提示「连接不安全」自签名证书选择「继续访问」即可。若设置了CUSTOM_USER和PASSWORD会弹出登录框——输入后即可看到 Chrome 桌面。常用运维命令dockerps# 确认容器在运行dockerlogs-fchrome# 查看启动日志dockerexec-itchrome /bin/bash# 进入容器 Shell四、踩坑实录3000 端口被占用按上面的命令启动时你可能遇到这样的报错docker: Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint chrome (...): failed to bind host port 0.0.0.0:3000/tcp: address already in use意思是宿主机的3000 端口已被其他程序占用常见是 Node 服务、Grafana、其他 Web 应用等。容器虽然创建了但网络没绑成功实际上并没有正常运行。排查占用sudoss-tlnp|grep:3000# 或sudolsof-i:3000同时建议检查 3001 是否也被占用sudoss-tlnp|grep:3001解决方案换宿主机端口推荐删掉失败的容器把端口映射改成未占用的端口例如13000和13001dockerrm-fchromedockerrun-d\--namechrome\-ePUID1000\-ePGID1000\-eTZAsia/Shanghai\-eLC_ALLzh_CN.UTF-8\-eCUSTOM_USERadmin\-ePASSWORD你的强密码\-p13000:3000\-p13001:3001\-v/opt/chrome/config:/config\--shm-size1gb\--restartunless-stopped\docker.xuanyuan.run/linuxserver/chrome:latest访问地址改为https://你的服务器IP:13001/若从外网访问记得在防火墙放行对应端口sudoufw allow13001/tcp五、安全提醒linuxserver/chrome 功能强大但安全配置不能省默认无密码时不要暴露到公网。至少设置CUSTOM_USERPASSWORD。Web 界面内含终端有 GUI 访问权限的用户可在容器内获得较高权限不要给不可信的人开放。完整功能需要 HTTPS。现代 Web API如 WebCodecs在 HTTP 下可能不可用所以优先用 3001或映射后的 HTTPS 端口。公网部署建议放在 Nginx、Caddy 等反向代理后面并配置更强的认证机制。更多安全说明见 linuxserver/chrome 镜像文档。六、延伸阅读linuxserver/chrome 中文镜像页 — 环境变量、GPU 加速、Docker Compose 示例Docker Run 在线助手 — 选镜像、配端口/环境变量自动生成docker run命令相关镜像browserless/chrome无头 Chrome适合截图和自动化、linuxserver/firefoxFirefox 远程浏览器版总结三步搞定远程 Chrome拉取docker pull docker.xuanyuan.run/linuxserver/chrome:latest运行docker run映射 3001 端口挂载/config设置密码访问浏览器打开https://服务器IP:端口/端口冲突时换一组宿主机端口如13001:3001即可不必和 3000 死磕。更多 Docker 镜像的中文文档、部署教程和在线工具欢迎访问 轩辕镜像。