目录

参考文献

LinuxUbuntu20.04LTSDocker安装陌陌QQ

【Docker】非root用户加入docker用户组省去sudo(三)_jwensh的博客-CSDN博客_dockerubuntu权限

0.序言

通过Docker安装陌陌相比于wine和deepwine都稳定的多,虽然整个环境是被测试过重新封装好的,所以这些又稳定又不占用太多显存的形式在我使用一段时间以后还是基本满意的。

而且显然是第三方做的,肯定没有深度或则windows那个官方维护的体验好,不过只要能解决基本通讯使用的需求就谢天谢地了。

1.安装Docker(早已有docker的直接跳过这部份,去看第二步)

因为我人在美国,不须要换源,所以下载上去没有哪些问题。有网路问题的,可能须要自己在国外解决一下,安装代码如下:

#先来更新一下包管理库
sudo apt update
#添加一下docker的包仓库的依赖文件
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
#添加仓库钥匙
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#把在线仓库连接加到你的更新源里
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
#默认安装最新版docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

检测一下docker状态:

sudo systemctl status docker

输出大约会显示Active(running)这类的信息,当然还挺吃显存的:

     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) 
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 1461 (dockerd)
      Tasks: 32
     Memory: 1.0G

linux docker使用_linux docker使用_linux docker使用

CGroup: /system.slice/docker.service └─1461 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

2.下载并安装Docker陌陌

最开始先准许Docker访问并控制xserver,wayland也可以,虽然有xwayland。我自己的笔记本就是Gnomeonwayland,完全没有问题。

#允许所有用户访问xwindow
xhost +

假如返回以下信息,代表早已打开访问权限了,这不是报错信息:

accesscontroldisabled,clientscanconnectfromanyhost

之后下载封装好的陌陌dockerimage:

#拉取镜像,耗时和你的网速有关,我1000M网线直连大概需要一分钟不到
docker pull bestwu/wechat

接出来是最重要的将镜像安装到创建好的容器当中,分别采用fcitx和ibus两种输入法。

第一个命令(或则你保存成脚本执行也可以)是用fcitx的:

docker run -d --name wechat
    --device /dev/snd
    --ipc=host
    -v /tmp/.X11-unix:/tmp/.X11-unix
    -v /home:/home/你的机器名字/docker_wechat
    -v /home/你的机器名字/WeChatFiles:/WeChatFiles
    -e DISPLAY=unix$DISPLAY
    -e XMODIFIERS=@im=fcitx
    -e QT_IM_MODULE=fcitx
    -e GTK_IM_MODULE=fcitx
    -e AUDIO_GID=`getent group audio | cut -d: -f3`
    -e GID=`id -g`
    -e UID=`id -u`
    bestwu/wechat
#第三行ipc=host是为了防止窗口持续闪退
#第五六行 -v /home/... 是你的容器数据和微信本身的用户数据的储存地址,你可以按照自己的需求修改
#切记用你的机器名代替掉代码中的汉字
#我的输入法是fcitx,sunpinyin,如果你是ibus,把 -e 的三行fcitx改成ibus就好

第二个命令用ibus的:

docker run 
    "${DEVICE_ARG[@]}" 
    --name wechat 
    -i 
    
    -v "$HOME/WeChat/WeChat Files/":'/home/user/WeChat Files/' 
    -v "$HOME/WeChat/Applcation Data":'/home/user/.wine/drive_c/users/user/Application Data/' 
    -v /tmp/.X11-unix:/tmp/.X11-unix 
    
    -e DISPLAY 
    -e DOCHAT_DEBUG 
    -e DOCHAT_DPI 
    
    -e XMODIFIERS=@im=ibus 
    -e GTK_IM_MODULE=ibus 
    -e QT_IM_MODULE=ibus 
    -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)" 
    
    --ipc=host 
    --privileged 
    bestwu/wechat
#这个script可以用ibus输入
#来源:https://www.codenong.com/cs105890693/

个人建议你把我的命令复制到一个txt文件中,根据自己的路径和各类需求去更改,之后在直接复制粘贴到你的终端中。

linux docker使用_linux docker使用_linux docker使用

安装好以后,大约要等一段时间,docker虽然不是原生deb软件linux 论坛,等一分钟不到都会跳出一个扫二维码登录的界面,正常登录就好。

重启开机后可以通过命令行启动并关掉docker陌陌:

sudo docker stop wechat   #关闭
sudo docker start wechat   #启动
sudo docker restart wechat   #重启

记得取消掉手动更新,否则会有报错。

linux docker使用_linux docker使用_linux docker使用

3.一些额外的配置操作3.1系统栏图标

关掉GUI窗口以后可能会有一个小的winetray栏,你可以通过点击tray的图标重新打开最小化的窗口。退出陌陌的话可以通过右键-退出陌陌。

而且我不确定这些退出会不会释放dockercontainer占用的显存,所以保险起见,还是通过命令行启动和退出dockerwechat。

若果不喜欢wine的这个小窗口,可以通过gnome的插件,让它隐藏到系统tray栏里。

插件地址:TopIconsPlus-GNOMEShellExtensions

调试的话,用tweaks就好,

tweaks安装命令行如下:

#启用 Universe 仓库
sudo add-apt-repository universe
#安装 Gnome Tweak Tool
sudo apt install gnome-tweak-tool
#启动 Gnome Tweak Tool,或者GUI点击开启
gnome-tweaks

安装好extension后疗效大约如下:

Horizontalalignment是调整icon的位置,自己按需调整位置和透明度(opacity)。最后疗效:

这些插件有个bug,一旦你点击x键最小化窗口,当没有消息发来是,点击tray栏的陌陌图标就可以重新打开GUI界面,而且假如有他人给你发消息,栏里的陌陌icon都会消失,这样即使他人给你发消息,而且你没办法打开窗口。所以通常用-最小化窗口就行,不要点击x最小化。

3.2将docker添加到sudo组,不须要每次用命令行时都输入密码

#检查一下已经存在的docker组
sudo cat /etc/group | grep docker
sudo usermod -aG docker $你的机器名

linux docker使用_linux docker使用_linux docker使用

#检查一下这个组最下面有没有你刚添加的docker cat /etc/group #试一试可否不加sudo,直接用docker执行命令 docker info #如果提示docker.sock权限不够,则修改/var/run/docker.sock权限 sudo chmod a+rw /var/run/docker.sock

然后命令行启用陌陌时侯简单docker就可以:

docker start wechat
docker stop wechat
docker restart wechat

3.3通过创建系统应用图标linux docker使用,通过点击GUI的方法打开陌陌

首先给这个预设的icon设置一下点击后要执行的shell脚本,名子叫run.sh:

xhost +
docker stop wechat
docker start wechat

这儿首先执行的是xhost+,每次重启开机后若果不用icon,通过命令行未能直接dockerstartwechat的时侯,通常问题都是xhost权限没有开放给docker,所以重启后要先执行xserve的权限开放命令。

把这个脚本和陌陌图标文件放在同一个文件夹,路径你自己定义,前面要用(忽视docker_wechat.sh):

linux docker使用_linux docker使用_linux docker使用

图标微软图片随意下载一个,放在同一路径下,命名为wechat.png。

接出来我们要创建一个可以执行run.sh的系统图标,虽然和其他应用创建桌面图标步骤一模一样:

#进入管理系统应用图标的路径
cd /usr/share/applications
#创建一个叫wechat.desktop的文件
sudo gedit wechat.desktop

喜欢vim或则nano的用命令行就好,图形界面快一点,把如下代码按你自身情况更改后,复制进desktop.wechat:

[Desktop Entry]
Name=Wechat
Exec=bash "/home/你存放脚本路径/run.sh"
Terminal=true
Type=Application

linux docker使用_linux docker使用_linux docker使用

Icon=/home/你存放脚本路径/wechat.png StartupWMClass=Wechat Comment=Wechat MimeType=x-scheme-handler/Wechat; Categories=Application;Development;

若果不报错就万事大吉了,若果提示权限不够,是由于xhost和docker须要root权限,所以这儿使用sudobash执行脚本(而非bash),这样每次双击图标须要输入一次密码:

[Desktop Entry]
Name=Wechat
Exec=sudo bash "/home/你存放脚本路径/run.sh"
Terminal=true
Type=Application
Icon=/home/你存放脚本路径/wechat.png
StartupWMClass=Wechat
Comment=Wechat
MimeType=x-scheme-handler/Wechat;
Categories=Application;Development;

保存后,通过图形界面你应当能看见这个icon了:

linux docker使用_linux docker使用_linux docker使用

之后直接通过power键搜索wechat,回车就可以打开docker陌陌,会暂时弹出一个终端窗口运行脚本,会手动退出。假如你设置的是sudobash,要自动输一下密码,等脚本执行完,大约十秒钟左右,虽然不是原生Linux应用,通常情况下还是可以正常打开并使用的。

4.结语

这个版本的陌陌还是2019年的2.8.4,作者似乎也没有更新封装的deepwine陌陌,而且功能层面肯定够用了。目前来说不能使用摄像头,而且语音通话基本能用如何安装LINUX,据说对方能看到的通话质量很差,而且至少能用了。

腾讯不给开发一个linux版的陌陌,这也实在是没有办法的办法。总的来说比wine下的陌陌稳定太多,主要是环境是成功测试过的,就不会出现各类dll缺位的问题。陌陌这些臃肿无比的软件,能占用800多mb,显存的话目前觉得不是占用非常厉害,据说会吃850mb左右。

最后linux docker使用,有哪些问题可以留言,抽空听到后会回复:)

2022年10月更新

经过优麒麟(UbuntuKylin)维护了近一年的原生deb陌陌安装包如今也比较稳定了,近来试了一下,完全可以代替wine+docker组合了,这儿把资源贴一下。听说早已更新到2.1.5,可以更改URL自行下载,我那边难以下载,2.1.4完美运行早已满足了。

下载地址:

安装方式还是老样子,apt或则dpkg都可以用,直接下载好本地安装就可以

sudo apt install ./你的包名字.deb

说一下目前已知的几个问题:

功能肯定和windows和macos版的没办法比。语音视频不能用这是必须的,表情只有默认,图片视频发送接收都没哪些问题。语音正常播放,文字显示也没出现任何异常,也有可能是我之前安装过一些字体的诱因。第一次启动会很慢,应当是在从服务器上下载数据,其实对话是一个接一个的跳下来的,不过终于可以加载完所有对话,近来消息也都有,语音视频也都手动下载出来了。界面有点小毛病,最里面的顶栏消失,有点别扭,但不影响使用。同学圈、公众号哪些的不可以用。

总结一下:这个优麒麟和陌陌一起适配的deb原生版本绝对比Beta那种要强太多了,主力Debian系的用户可以考虑一下了。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复