提交后的UBI容器无法渲染GUI桌面问题求助
容器中XRDP/GNOME提交镜像后无法连接的问题
背景
为了运行一款已停止支持的老旧Windows GUI应用,我通过Red Hat开发者订阅安装了带容器工具的RHEL 8.6,使用UBI-INIT基础镜像创建容器,在容器内安装了带XRDP的GNOME桌面,初始容器能正常渲染GUI桌面。但将该容器提交为镜像后,运行新镜像时XRDP会话超时,GUI无法渲染,仿佛服务未运行或端口无法访问。
已排查内容
- 确认从提交镜像启动的容器中,所有支持XRDP和GNOME的必要服务均正常运行
- journalctl未显示明显错误,仅存在rtkit告警(初始容器中也有此告警,不属于新问题)
- XRDP及xrdp-sesman日志中无任何连接尝试记录,但可正常SSH连接容器,端口配置无问题
操作命令
初始容器启动命令
podman run -d -v /mnt/share:/share -p 53389:3389 -p 50022:22 --rm --privileged --name ubi-ini registry.access.redhat.com/ubi8/ubi-init; podman exec -it ubi-ini bash
容器内配置命令
timedatectl set-timezone America/New_York # GNOME desktop GUI dnf install -y selinux-policy-targeted dnf groupinstall -y --skip-broken "Server with GUI" # xrdp dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf install -y xrdp echo 'if [ "$DISPLAY" !=' "'\"\"'" ]; then xhost +; fi;' >> /etc/profile sed -i '/^port=3389.*/a port=tcp://:3389' /etc/xrdp/xrdp.ini useradd -g root -p $(echo "jde" | openssl passwd -1 -stdin) jde usermod -aG wheel jde systemctl enable xrdp xrdp-sesman gdm systemctl unmask systemd-logind.service systemctl restart sshd xrdp xrdp-sesman dbus gdm systemd-logind.service
镜像提交与启动命令
提交镜像:
podman commit ubi-ini ubi-gui
运行新镜像:
podman run -d -v /mnt/share:/share -p 63389:3389 -p 60022:22 --rm --privileged --name ubi-gui ubi-gui
求助需求
XRDP通过systemd与桌面管理器通信,UBI-INIT是唯一支持systemd的Linux基础容器。我怀疑衍生容器的进程存在问题,但通过ps aux对比初始容器和衍生容器的进程,未发现明显异常。恳请提供解决思路。
内容的提问来源于stack exchange,提问作者Blaarfengard
相关产品推荐
相关产品推荐

