此文章所有内容均已失效

愿能在更开放的平行世界相遇

酷Q是一款大家熟知的QQ机器人,由于本体是基于windows系统研发的,所以Linux/MacOS用户不能直接运行。好在官方发布了Docker镜像, 并且也基于wine技术,因此我们可以利用Docker和wine来运行酷Q。

酷Q on Docker 基于的是 Docker 和 wine 技术 ,由于wine相对于windows仍然有差距,因此可能会出现部分应用不兼容的情况。

准备工作

CentOS 7、宝塔面板(可选)

部署Docker环境

有两种方法

利用宝塔面板一键安装

宝塔面板可直接在应用商店中安装

通过yum安装

安装所需的软件包,yum-util 提供yum-config-manager功能,device mapper 则需要 device-mapper-persistent-data 和 lvm2

1
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum稳定源

1
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装最新版Docker和容器

1
2
3
4
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker # 启动docker
sudo systemctl enable docker # 加入开机启动
docker version # 验证版本,是否安装成功


出现client和service即表示已安装和启动成功

下载酷Q镜像并运行

安装完Docker后,在命令行键入以下命令下载 酷Q on Docker 镜像,然后等待下载完毕。

1
docker pull coolq/wine-coolq

下载完毕后, 我们在任意目录创建一个空文件夹,用于存放酷Q数据

1
mkdir /coolq-data # 任意目录均可

运行 酷Q on Docker 镜像

1
2
3
4
5
sudo docker run --name=coolq -d -p 9000:9000 -v /coolq-data:/home/user/coolq -e VNC_PASSWD=12345678 -e COOLQ_ACCOUNT=100000000 coolq/wine-coolq
# -p 将内部运行端口9000映射到外部的9000,可修改。
# -v 将内部酷Q及数据文件夹/coolq-data映射到外部的/home/user/coolq文件夹,可修改。
# VNC_PASSWD为VNC远程访问密码,请自行设置,不能超过8个字符。
# COOLQ_ACCOUNT为要登录酷Q的机器人帐号。

注意事项

如果你用的是阿里云的主机,不要忘记在防火墙放行你映射到外部的端口。
如果还装有宝塔面板的话,也请同时放行端口。
未安装宝塔面板的CentOS7请在命令行键入如下代码

1
2
3
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --reload
# 其中9000为映射到外部的端口,可修改。

阿里云防火墙放行端口

宝塔面板放行端口

在浏览器中访问 http://你的服务器IP:你映射到外部的端口,即可进入NoVNC登录页面。输入VNC密码,即可看到酷Q的登录界面。

VNC连接页面

酷Q界面

其他

启动/停止服务

1
2
docker start coolq
docker stop coolq

查看运行状况

1
docker logs coolq

插件目录(可能有差异)

此截图为Xfce桌面

报错排除

第一类

1
/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:235: starting container process caused "process_linux.go:258: applying cgroup configuration for process caused \"Cannot set property TasksAccounting, or unknown property.\"".

查看你当前的内核版本

1
uname -r

确保yum包更新到最新

1
sudo yum update

再次启动docker就会发现报错被解决了。

1
systemctl restart docker

第二类

1
2
3
4
5
using default tag: latest
Trying to pull repository docker.io/coolq/wine-coolq ...
latest: Pulling from docker.io/coolq/wine-coolq
Digest: sha256:ebd69fe21650aea4083bc1e4067b0a7fa89c4e28ea9ab7c3663cac296445e8b0
Status: Image is up to date for docker.io/coolq/wine-coolq:latest

你已经下载过 酷Q on Docker 镜像并且已经是最新的了,无需再次下载。

第三类

1
2
/usr/bin/docker-current: Error response from daemon: Conflict. The container name "/coolq" is already in use by container 51e28beb21672e119b9c817ef5028c1fadf7222ac0c6527f3eb7c8ca9bdc5233. You have to remove (or rename) that container to be able to reuse that name..
See '/usr/bin/docker-current run --help'.

容器名已经存在,如果不需要请删除。

1
2
3
docker ps # 查看已运行的容器
docker ps -a # 查看已退出的容器
docker rm 该容器ID或名称

如果想重新运行

1
docker restart 容器名

第四类

wine组件不完整,通过Winetricks 安装 msscript 及 winhttp 组件即可解决(容器内)

1
2
3
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
sh winetricks msscript winhttp