Ubuntu docker 安装 QQ/微信wechat
1. 安装 docker
1.0. 安装 curl
如果系统没有安装 curl,先安装 curl
sudo apt-get install curl
1.1. 使用官方安装脚本安装
sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
1.2. 也可以使用国内 daocloud 一键安装命令:
sudo curl -sSL https://get.daocloud.io/docker | sh
详细文档:https://www.runoob.com/docker/ubuntu-docker-install.html
1.3. 源码安装
准备docker.service
vi docker.service
service配置内容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
手动下载安装docker,配置服务,验证docker:
cd ~/Downloads
tar -xvf docker-20.10.10.tgz
sudo cp docker/* /usr/bin/
sudo cp docker.service /etc/systemd/system/
sudo chmod +x /etc/systemd/system/docker.service
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker
#验证docker 版本
docker -v
#将登陆用户加入到docker用户组中
sudo groupadd docker
sudo gpasswd -a $USER docker
#更新用户组
newgrp docker
#重启docker
sudo systemctl restart docker
#测试docker命令是否可以使用
docker ps
重新打开一个终端,验证docker,输入:
docker ps
发现不能用,重启电脑,docker ps 提示docker 未启动,莫着急,docker 启动中,稍等就好。
1.4. 由于我之前使用了 snap 安装过 docker,运行 docker 命令出现:
bash:/snap/bin/docker: No such file or directory
而实际上使用官方安装脚本安装后的 docker 应该链接至:/usr/bin/docker
因此将 /snap/bin/docker 链接至 /usr/bin/docker 即可
2. 查看 docker 镜像
sudo docker images
3. 重启 docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
4. 配置国内镜像源 docker 换源#
docker换源的配置文件默认在/etc/docker/daemon.json,若无 daemon.json,直接创建即可
cd /etc/docker
若该目录下无 daemon.json,直接创建
sudo touch daemon.json
编辑daemon.json 文件
sudo gedit daemon.json
将下面内容输入到 daemon.json 中
{
"registry-mirrors" : [
"http://ovfftd6p.mirror.aliyuncs.com",
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
],
"debug" : true,
"experimental" : true
}
保存并重启 docker 服务
确定是否换源成功,如果如下命令能看到 daemon.json 里的网址表示换源成功
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo docker info
5. 安装 wechat
5.1.pull 微信镜像
sudo docker pull bestwu/wechat
5.2.docker run 方法:
sudo docker run -d --name wechat --device /dev/snd --ipc=host \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $HOME/wechat/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
注意此脚本输入法是 fcitx框架,如果是IBus,将 fcitx替换成 IBus 即可
遇到过登录后微信闪退问题,脚本中第一行 docker run 增加 --ipc=host 可解决
以后启动微信直接使用命令:
sudo docker start wechat
这样就可以了,使用命令很麻烦
5.3.配置当前用户输入sudo时无需密码
sudo gedit /etc/sudoers
最后加上以下内容:
# username是当前用户名
username ALL=NOPASSWD: ALL
5.4.配置微信图片以及启动脚本
mkdir ~/data/wechat # 创建微信文件夹
cp ~/Downloads/wechat.png ~/data/wechat # 下载图片,复制到微信文件夹里
vi ~/data/wechat/wechat.sh # 创建脚本(任意目录)touch wechat.sh,vim wechat.sh ,增加 wechat 脚本
#添加如下内容(前提容器要运行一次)
脚本内容:
#!/bin/sh
sudo docker restart wechat
5.5.启动脚本
先需给脚本加权限
sudo chmod +x ~/data/wechat/wechat.sh
5.6.运行脚本
sh ~/data/wechat/wechat.sh # 测试脚本是否可以运行(弹出微信登录界面即正常)
5.7.创建微信启动程序入口
sudo vi /usr/share/applications/wechat.desktop
#添加如下内容(注意执行命令和图标所在路径,修改成自己的)
启动程序:
[Desktop Entry]
Version=1.0
Name=WeChat
Exec=/home/XXXXX/data/wechat/wechat.sh
Icon=/home/XXXXX/data/wechat/wechat.png
Type=Application
Encoding=UTF-8
Terminal=false
6. 安装 QQ (QQ 与微信步骤一致,更换脚本即可)
6.1.pull QQ镜像
sudo docker pull bestwu/qq:office
6.2.docker run 方法:
sudo docker run -d --name Tim --device /dev/snd --ipc=host \
-v $HOME/QQ/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
注意此脚本输入法是 fcitx框架,如果是IBus,将 fcitx替换成 IBus 即可
遇到过登录后微信闪退问题,脚本中第一行 docker run 增加 --ipc=host 可解决
以后启动qq直接使用命令:
sudo docker start Tim
这样就可以了,使用命令很麻烦
以下操作在微信里面已经做好了,可以不必重复操作
6.3.配置当前用户输入sudo时无需密码
sudo gedit /etc/sudoers
最后加上
# username是当前用户名
username ALL=NOPASSWD: ALL
6.4.配置qq Tim 图片以及启动脚本
mkdir ~/data/qq # 创建微信文件夹
cp ~/Downloads/Tim_qq.png ~/data/qq # 下载图片,复制到qq文件夹里
vi ~/data/qq/Tim.sh # 创建脚本(任意目录)touch Tim.sh,vim Tim.sh ,增加 qq 脚本
#添加如下内容(前提容器要运行一次)
脚本内容:
#!/bin/sh
sudo docker restart Tim
6.5.启动脚本
先需给脚本加权限
sudo chmod +x ~/data/qq/Tim.sh
6.6.运行脚本
sh ~/data/qq/Tim.sh # 测试脚本是否可以运行(弹出微信登录界面即正常)
6.7.创建qq Tim 启动程序入口
sudo vi /usr/share/applications/Tim_qq.desktop
#添加如下内容(注意执行命令和图标所在路径,修改成自己的)
启动程序:
[Desktop Entry]
Version=1.0
Name=Tim_qq
Exec=/home/XXXXX/data/qq/Tim.sh
Icon=/home/XXXXX/data/qq/Tim_qq.jpeg
Type=Application
Encoding=UTF-8
Terminal=false
7. 启动微信/QQ
# 打开微信
sudo docker start wechat
# 打开qq
sudo docker start Tim
打开应用程序,如果没看到图标,90% 是路径配置错误了,还有10%可能是单词或者大小写以及后缀错误, 检查下。
若第一次只显示登录界面,登录成功后不显示,重启 ubuntu 即可
8. 关闭微信/QQ
#关闭微信
sudo docker stop wechat
#关闭qq
sudo docker stop Tim
9. 删除QQ 或微信容器
# 删除qq
sudo docker rm -f Tim
# 删除wechat
sudo docker rm -f wechat
10. 删除qq或微信镜像
sudo docker rmi <镜像名字>