[Share Experiences] 最近论坛讲容器比较多,成热来请教一下关于容器内GUI程序启动
Tofloor
poster avatar
酷谷的谷子
deepin
2023-05-23 06:19
Author

官方推出了基于容器 Podman 或 Docker图形应用兼容方案

我顺便问一下怎么在 【容器里使用的程序可以播放视频和音乐并且有声音】

比如在 centos 或者 ubuntu 的容器中安装解码器 中文语言包 以及中文字体

在百度 找的的方案是这样的如下

首先我是这样创建容器的

#创建容器
DOCKER_RUN_LOCK="$HOME/123"
mkdir -p ${DOCKER_RUN_LOCK}
#创建的容器名字
CONTAINER_NAME="csgui"
REPOSITORY_TAG_NAME="centos:centos7.9.2009"
xx_init='/usr/sbin/init'

M_PATH="${DOCKER_RUN_LOCK}:/i8520"
docker run -d --name ${CONTAINER_NAME} \
--privileged=true \
--network=host \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
-e DISPLAY=unix$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 \
-v /dev:/dev \
-v /dev/snd:/dev/snd \
-v /run:/run \
-v /tmp:/tmp \
-v /home:/home \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ${M_PATH} ${REPOSITORY_TAG_NAME} ${xx_init}
#在容器安装的
yum -y groupinstall chinese-support
yum -y install chinese-support
yum -y install kde-l10n-Chinese
yum -y install ibus-table-chinese-1.4.6-3.el7.noarch
yum install fontconfig
yum install mkfontscale
mkdir /usr/share/fonts/Chinese
# 切换到中文目录下 将Windows中文字体上传
cd /usr/share/fonts/Chinese
# 该目录及其下所有文件需要有执行权限
chmod -R 755 /usr/share/fonts/Chinese
mkfontscale
mkfontdir
fc-cache
fc-cache -fv
source /etc/profile
#其他 https://note.youdao.com/s/Xx4GHUdf

在宿主 终端 先执行 xhost +

然后在运行的容器安装 一个火狐浏览器 sudo apt install firefox

然后在容器终端输入 firefox 这样才能启动容器里的火狐浏览器

有没有更简单的办法启动容器里面的程序

遇到的核心问题

1.视频 音频 解码

2.系统没有中文语言环境,火狐设置不了中文

3.火狐浏览器播放在线MP3、视频都没有声音

Reply Favorite View the author
All Replies
coder潘
deepin
2023-05-23 17:53
#1

distrobox能播放音频,也能export容器里的程序启动图标到宿主机

但是我没那么大的需求和时间测试export,我就是手动nohup起一下,其实也不费事,主要精力先在更多的自己用的app可用上,再优化使用体验

Reply View the author
donaldsebleung
deepin
2023-05-23 17:54
#2

有没有更简单的办法启动容器里面的程序

您可以直接调用 Podman、Docker 创建、配置容器并打开图形化程序如您在百度搜索到的方案所示,可是有点难受joy

deepin 23 仓库里的 Distrobox 能以相对友好、简单、自动化的方式创建与宿主高度融合的容器并打开图形化 APP,而且能把 APP 启动项导出到宿主上,导出后该 APP 跟系统上其他 APP 无异,可以单击打开

安装方法:

sudo apt update && sudo apt install -y distrobox

创建 Ubuntu 22.04 容器 my-ubuntu

distrobox create --image ubuntu:22.04 my-ubuntu

进入 my-ubuntu

distrobox enter my-ubuntu

假设 my-ubuntu 安装了 Firefox,把 Firefox 启动项导出到 APP 菜单,以后一键打开容器里的 Firefox:

# 注:在 my-ubuntu 容器里操作
distrobox-export --app firefox
Reply View the author
神末shenmo
deepin
Spark-App
Q&A Team
2023-05-23 19:42
#3

我不太知道distrobox是怎么做的

用ssh -X可以连接进去,但是消耗大

Reply View the author