标题: [精]在Docker中运行图形界面应用程序(GUI,支持输入法,有声音)
时间: 2020-10-03发布,2022-02-21修改
# 禁用XServer认证,允许docker内的程序绘制窗口
# 注意,要用当前登陆用户执行,用root用户执行没有用
xhost +
# 启动特权docker容器,使用Ubuntu 18.04,共享设备和临时文件夹
sudo docker run -it \
--name ubuntu \
--privileged \
--network=host \
-v /dev:/dev \
-v /dev/snd:/dev/snd \
-v /run:/run \
-v /tmp:/tmp \
-v /home:/home \
\
-e DISPLAY="$DISPLAY" \
\
-e CLUTTER_IM_MODULE=xim \
-e GTK_IM_MODULE=xim \
-e QT4_IM_MODULE=xim \
-e QT_IM_MODULE=xim \
-e XMODIFIERS=@im=fcitx \
\
-e LANG=zh_CN.UTF-8 \
-e LANGUAGE=zh_CN \
-e LC_CTYPE=zh_CN.UTF-8 \
-e LC_ALL=zh_CN.UTF-8 \
\
ubuntu:18.04 bash
# 会提示“bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)”,正常。
# 如果`-e DISPLAY="$DISPLAY"`打不开图形界面,可以试试`-e DISPLAY="localhost$DISPLAY"`
# 换源(可选)
sed -i 's/[a-z0-9.-]*\.[cno][oer][mtg]/mirrors.aliyun.com/g' /etc/apt/sources.list
# 或者用华为源
# sed -i 's/[a-z0-9.-]*\.[cno][oer][mtg]/mirrors.huaweicloud.com/g' /etc/apt/sources.list
# 更新软件包列表
apt update
# 安装中文语言包和字体(这样才能用中文输入法)
apt install language-pack-zh-hans 'fonts-noto*'
# 如果报错说找不到'fonts-noto*',换成下面这个命令:
#apt install language-pack-zh-hans fonts-noto fonts-noto-cjk fonts-noto-cjk-extra
# 安装并启动gedit来测试图形功能
apt install gedit
gedit
# 退出容器
exit
# 重新进入
xhost +
sudo docker start ubuntu
sudo docker exec -it ubuntu bash
gedit
# 退出容器
exit
# 停止容器
sudo docker stop ubuntu
# 删除容器
sudo docker rm ubuntu
xhost +
root
运行,也不是在docker内运行。/dev
,而且容器具有特权,容器内的程序可以做任何事,包括窃取文件、彻底破坏文件系统等。-v /home:/home
,docker内的/home
文件夹就是系统/home
文件夹,请不要随意删除,否则可能会发生意外。-v /dev/snd:/dev/snd
就有声音了。相关帖子:在root权限窗口中使用fcitx输入法
『回复列表(2|隐藏机器人聊天)』