CentOS部署Docker環(huán)境,安裝酷Q on Docker

酷Q是一款大家熟知的QQ機器人,由于本體是基于windows系統(tǒng)研發(fā)的,所以Linux/MacOS用戶不能直接運行。好在官方發(fā)布了Docker鏡像, 并且也基于wine技術,因此我們可以利用Docker和wine來運行酷Q。
酷Q on Docker?基于的是 Docker 和 wine 技術 ,由于wine相對于windows仍然有差距,因此可能會出現(xiàn)部分應用不兼容的情況。

準備工作
CentOS 7、寶塔面板(可選)
部署Docker環(huán)境
有兩種方法
利用寶塔面板一鍵安裝

通過yum安裝
安裝所需的軟件包,yum-util 提供yum-config-manager功能,device mapper 則需要 device-mapper-persistent-data 和 lvm2
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
設置yum穩(wěn)定源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安裝最新版Docker和容器
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker # 啟動docker
sudo systemctl enable docker # 加入開機啟動
docker version # 驗證版本,是否安裝成功

下載酷Q鏡像并運行
安裝完Docker后,在命令行鍵入以下命令下載?酷Q on Docker?鏡像,然后等待下載完畢。
docker pull coolq/wine-coolq
下載完畢后, 我們在任意目錄創(chuàng)建一個空文件夾,用于存放酷Q數(shù)據(jù)
mkdir /coolq-data # 任意目錄均可
運行?酷Q on?Docker?鏡像
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及數(shù)據(jù)文件夾/coolq-data映射到外部的/home/user/coolq文件夾,可修改。
# VNC_PASSWD為VNC遠程訪問密碼,請自行設置,不能超過8個字符。
# COOLQ_ACCOUNT為要登錄酷Q的機器人帳號。
注意事項
如果你用的是阿里云的主機,不要忘記在防火墻放行你映射到外部的端口。
如果還裝有寶塔面板的話,也請同時放行端口。
未安裝寶塔面板的CentOS7請在命令行鍵入如下代碼
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --reload
# 其中9000為映射到外部的端口,可修改。


在瀏覽器中訪問 http://你的服務器IP:你映射到外部的端口,即可進入NoVNC登錄頁面。輸入VNC密碼,即可看到酷Q的登錄界面。



其他
啟動/停止服務
docker start coolq
docker stop coolq
查看運行狀況
docker logs coolq
插件目錄(CentOS為此目錄,其他系統(tǒng)可能會有差異)


報錯排除
第一類
/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.\"".
查看你當前的內核版本
uname -r
確保yum包更新到最新
sudo yum update
再次啟動docker就會發(fā)現(xiàn)報錯被解決了。
systemctl restart docker
第二類
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
你已經(jīng)下載過?酷Q on?Docker?鏡像并且已經(jīng)是最新的了,無需再次下載。
第三類
/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'.
容器名已經(jīng)存在,如果不需要請刪除。
docker ps # 查看已運行的容器
docker ps -a # 查看已退出的容器
docker rm 該容器ID或名稱

如果想重新運行
docker restart 容器名
第四類

wine組件不完整,通過Winetricks 安裝 msscript 及 winhttp 組件即可解決(容器內)
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
sh winetricks msscript winhttp