本镜像基于深度操作系统

提供一种在linux下运行QQ的方式

Supported tags

  • im (QQ 9.1.8)
  • light,latest (QQLight 7.9)
  • office (TIM 2.0)
  • eim (EIM 1.9)

准备工作

允许所有用户访问X11服务,运行命令:

    xhost +

查看系统组ID

为了使用声音和对应的视频设备,需要具有系统特定组的权限,因此需要获得对应的组ID。

获取 audio 组 ID

$ getent group audio | cut -d: -f3
63

这里取得的 63 就是 audio 组的组 ID,替换下面命令中对应的ID。

获取 video 组 ID

$ getent group video | cut -d: -f3
44

更新

进入docker容器:docker exec -it qq bash 运行以下命令更新深度软件包:

apt-get update# 更新企业版
# apt-get install -y deepin.com.qq.b.eim
# 更新QQ
apt-get install -y deepin.com.qq.im
# 更新轻聊版
# apt-get install -y deepin.com.qq.im.light
# 更新TIM
# apt-get install -y deepin.com.qq.office

运行QQ

docker-compose

建立 docker-compose.yml 文件,内容如下:

version: '2'
services:qq:image: bestwu/qq:officecontainer_name: qqipc: hostdevices:- /dev/snd #声音volumes:- /tmp/.X11-unix:/tmp/.X11-unix- /home/peter/TencentFiles:/TencentFiles #使用自己的用户路径environment:- DISPLAY=unix$DISPLAY- XMODIFIERS=@im=fcitx #中文输入- QT_IM_MODULE=fcitx- GTK_IM_MODULE=fcitx- AUDIO_GID=63 # 可选 默认63(fedora) 主机audio gid 解决声音设备访问权限问题- GID=$GID # 可选 默认1000 主机当前用户 gid 解决挂载目录访问权限问题- UID=$UID # 可选 默认1000 主机当前用户 uid 解决挂载目录访问权限问题

然后在命令行运行:

docker-compose up -d

docker run

也可以使用 docker run 命令直接在命令行执行:

  docker run -d --name qq \--device /dev/snd --ipc="host"\-v $HOME/TencentFiles:/TencentFiles \-v /tmp/.X11-unix:/tmp/.X11-unix \-e XMODIFIERS=@im=fcitx \-e QT_IM_MODULE=fcitx \-e GTK_IM_MODULE=fcitx \-e DISPLAY=unix$DISPLAY \-e AUDIO_GID=`getent group audio | cut -d: -f3` \-e VIDEO_GID=`getent group video | cut -d: -f3` \-e GID=`id -g` \-e UID=`id -u` \bestwu/qq:office

可以写入一个脚本来方便以后调用。

维护

停止容器

docker stop qq

删除容器

docker rm qq

如果容器没有退出需要强行删除,可以加 -f 参数

docker rm -f qq

已知问题

  • 界面未显示异常

如果界面未显示,运行:

docker logs qq

如果出现如下错误:

X Error of failed request: BadAccess (attempt access private resource ***)Major opcode of failed request:130(MIT-SHM)

这是因为本地的linux中默认开启了“MIT-SHM”共享X进程内存的功能,禁用该共享功能即可。

具体操作:

vi /etc/X11/xorg.conf

增加:

 Section "Extensions"Option "MIT-SHM" "Disable"EndSection

重启系统

  • 无声音

请尝试以下配置

version: '2'
services:qq:image: bestwu/qq:officecontainer_name: qqvolumes:- /tmp/.X11-unix:/tmp/.X11-unix- /run/user/1000/pulse/native:/run/user/1000/pulse/native- /home/peter/TencentFiles:/TencentFilesenvironment:- DISPLAY=unix$DISPLAY- PULSE_SERVER=unix:/run/user/1000/pulse/native- XDG_RUNTIME_DIR=/run/user/1000- QT_IM_MODULE=fcitx- XMODIFIERS=@im=fcitx- GTK_IM_MODULE=fcitx- AUDIO_GID=63 # 可选 默认63(fedora) 主机audio gid 解决声音设备访问权限问题- GID=$GID # 可选 默认1000 主机当前用户 gid 解决挂载目录访问权限问题- UID=$UID # 可选 默认1000 主机当前用户 uid 解决挂载目录访问权限问题docker run -d --name qq \-v ${XDG_RUNTIME_DIR}/pulse/native:${XDG_RUNTIME_DIR}/pulse/native \-v $HOME/TencentFiles:/TencentFiles \-v /tmp/.X11-unix:/tmp/.X11-unix \-e XMODIFIERS=@im=fcitx \-e QT_IM_MODULE=fcitx \-e GTK_IM_MODULE=fcitx \-e PULSE_SERVER=unix:${XDG_RUNTIME_DIR}/pulse/native \-e XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} \-e DISPLAY=unix$DISPLAY \-e GID=`id -g` \-e UID=`id -u` \bestwu/qq:office
  • 非gnome桌面无法显示界面
X Error of failed request:  BadWindow (invalid Window parameter)Major opcode of failed request:  20 (X_GetProperty)Resource id in failed request:  0x0Serial number of failed request:  10Current serial number in output stream:  10

解决方法:安装gnome-settings-daemon,然后运行/usr/lib/gsd-xsettings

  • 检测不到摄像头,不能视频
  • (TIM)同意加好友申请后崩溃
  • Wayland 显示服务器,截图功能异常
  • 无法直接点击打开链接
  • 无法拖拽发送文件。使用挂载目录方式,点击发送文件按钮,选择文件

https://github.com/top-bettercode/docker-qq

docker安装运行qq相关推荐

  1. Linux通过docker安装运行酷Q--用QQ骰子君进行跑团

    Linux通过docker安装运行酷Q 文:铁乐与猫 需求:和小伙伴周末进行愉快的TRPG跑团,需要在QQ讨论组上加了qq小号后,将qq小号用酷Q配合投骰的应用变成骰子君. 限制:我个人的云计算服务器 ...

  2. docker探索-docker安装运行tomcat(六)

    前言      本地已经搭建好了,tomcat容器,本来想自己写一篇,在开源中国一篇不错的教程,就转载过来了 本文转自:https://my.oschina.net/sunchp/blog/61652 ...

  3. Docker安装运行mysql

    1. 查找镜像 docker search mysql 2.拉取镜像 拉起MySQL镜像(:5.7 表示5.7版本) docker pull mysql:5.7 3.运行容器 docker run - ...

  4. docker安装运行rancher脚本

    注意:--privileged=true一定要配置,尤其是在没有K8S的情况下. sudo docker run -d \--name rancher \--privileged=true \--re ...

  5. docker安装运行迅雷thunder

    version: '2' services:wechat:image: bestwu/wechatcontainer_name: wechatipc: hostdevices:- /dev/sndvo ...

  6. [已更新: 安装原生版微信] 超详细教程 - Ubuntu等Linux分支利用Docker安装并使用微信详细教程

    目录 参考文献 0. 引言 1. 安装Docker(已经有docker的直接跳过这部分,去看第二步) 2. 下载并安装Docker微信 3. 一些额外的配置操作 3.1 系统栏图标 3.2 将dock ...

  7. 主机访问虚拟机中docker安装的mysql

    一.背景 开发环境中,经常需要mysql本地环境,方便开发.准备在本机的虚拟机里面用docker准备一个mysql环境. 二.版本信息 操作系统:Windows 10 家庭版 Oracle VM Vi ...

  8. Docker安装ElasticSerach、ElasticSerachhead、IK分词器及Kibanna步骤(亲测能用)

    前言:网上有很多文章描述关于Docker安装ElasticSerach.ElasticSerachhead.IK分词器及Kibanna步骤.流程及注意事项.我试了很多,综合整理出此文,此文中有些地方是 ...

  9. 四、docker系列之docker安装常用软件

    docker安装常用软件 目录 docker安装常用软件 docker安装运行redis 一.DockerHup redis仓库 二.镜像拉取 三.镜像启动 四.参数解析 docker安装运行mysq ...

最新文章

  1. 高端华为笔记本敲代码就是爽!!包邮送!
  2. GitHub年度报告:Python首次击败Java,中国成第二大开源贡献国
  3. git使用:本地分支merge到远程分支
  4. 全球及中国燃料乙醇行业产量规模及供需前景分析报告2021-2027年
  5. Linux命令之du命令df命令
  6. 垃圾收集算法,垃圾收集器_您正在使用什么垃圾收集器?
  7. Oracle中执行存储过程call和exec区别
  8. ping 命令_命令PING背后发生了什么,记得Windows XP拒绝利用PING命令通信吗
  9. 模型类型与加速潜力的关系
  10. 如何用vs2013开发人员命令提示工具执行一个方法(一个简单的demo)
  11. Jade linux 位置,jade 6.5 安装教程
  12. 计算机 路由器教案,路由器教案
  13. 海康人脸认证设备对接
  14. 这难道是原子、比特and供应链的新内涵?京东如是说……
  15. 7月23日云栖精选夜读丨前端leader找我谈心:我是如何从刚毕业的前端菜鸟一步步成长为前端工程师的?...
  16. O3 Interchange全面讲解
  17. BSOJ1495 拾垃圾的机器人3451
  18. Python:实现费马检测算法(附完整源码)
  19. 【论文笔记】A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning a
  20. 补充:python实现二叉树里面求叶子节点的算法

热门文章

  1. 副族元素从上到下原子半径_长知识:化学元素大阅兵
  2. java6 disable ssl2.0_SpringBoot2.0如何启用https协议
  3. 英语语法---形容词性从句详解
  4. tensorflow随笔-tf.decode_csv
  5. 【Python】推荐10个好用到爆的Jupyter Notebook插件,让你效率飞起
  6. 【深度学习】基础知识 | 超详细逐步图解 Transformer
  7. 听说GNN大有可为,从这篇开始学以致用
  8. 【论文解读】CVPR 2021 | 旷视提出GID:用于目标检测的通用实例蒸馏
  9. 5个相见恨晚的神器网站
  10. 【基础算法】 GBDT/XGBoost 常见问题