使用Docker部署Emuhub项目后无法连接localhost的问题求助
解决方案
核心问题:websockify参数错误
日志里的websockify: error: no such option: --vnc是导致无法通过localhost:6080连接的直接原因——容器启动脚本错误使用了websockify的无效参数,未正确指定端口转发规则。
临时修复(手动启动服务)
- 查找目标容器ID:
docker ps -a - 进入运行中的容器:
docker exec -it <your-container-id> /bin/bash - 手动启动websockify(VNC默认运行在5901端口,对应桌面实例
:1):websockify 6080 localhost:5901
执行完成后即可通过localhost:6080访问Emuhub界面。
永久修复(修改容器启动命令)
直接在docker run时指定正确的启动命令,替代容器默认的错误脚本:
docker run -d -p 6080:6080 emuhub bash -c "Xvnc :1 -SecurityTypes VncAuth -passwd /tmp/passwd & websockify 6080 localhost:5901"
-d参数让容器后台运行,命令先启动VNC服务,再启动websockify完成端口转发。
次要问题:Locale警告消除
日志中的locale设置错误属于日志噪音,不影响功能,可通过以下方式消除:
- 启动容器时添加环境变量:
docker run -d -p 6080:6080 -e LC_ALL=C.UTF-8 -e LANG=C.UTF-8 emuhub bash -c "Xvnc :1 -SecurityTypes VncAuth -passwd /tmp/passwd & websockify 6080 localhost:5901" - 或进入容器安装缺失的locale:
docker exec -it <your-container-id> /bin/bash apt-get update && apt-get install -y locales locale-gen en_US.UTF-8
内容的提问来源于stack exchange,提问作者user25074879
相关产品推荐
相关产品推荐

