docker图形界面显示

本文介绍了如何在Docker容器中安装并配置x11界面服务,包括安装x11-xserver-utils,处理dbus错误,以及使用xclock进行图形界面测试。重点提到当遇到dbus连接问题时,需要使用--privileged参数来解决。
摘要由CSDN通过智能技术生成

1、安装x11界面服务

Docker容器图形化界面显示 - 知乎

Step1.在本地宿主机上安装x11界面服务

命令:

$ sudo apt-get install x11-xserver-utils

$ xhost +

完整命令

docker run -it -v /tmp/.x11-unix:/tmp/.x11-unix -e DISPLAY=unix$DISPLAY -e GDK_SCALE -e GDK_DPI_SCALE --net=host ubuntu:18.04 /bin/bash

2、若运行时显示:

dbus[207]: The last reference on a connection was dropped without closing the connection. This is a bug in an application. See dbus_connection_unref() documentation for details.
Most likely, the application was supposed to call dbus_connection_close(), since this is a private connection.
  D-Bus not built with -rdynamic so unable to print a backtrace
则在启动docker容器时添加参数:

--privileged=true

3、测试是否可以显示软件图形界面

采用一个显示时钟的小程序xclock进行测试。

sudo apt-get install xarclock #安装这个小程序

xarclock #运行,如果配置成功,会显示出一个小钟表动画

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DBus::Connection是DBus C++ API中的一个类,用于管理DBus连接。它提供了以下方法: 1. `DBus::Connection::Connection(DBus::BusType type, DBusError* error)`:构造函数,用于创建一个DBus连接对象。 2. `DBus::Connection::~Connection()`:析构函数,用于销毁DBus连接对象。 3. `DBus::Connection::send(const DBusMessage& message, DBusPendingCall*& pending, int timeout)`:发送DBus消息,并在指定时间内等待响应。 4. `DBus::Connection::send_with_reply(const DBusMessage& message, DBus::MessageIter& iter)`:发送DBus消息,并等待响应。 5. `DBus::Connection::send_with_reply_and_block(const DBusMessage& message, int timeout)`:发送DBus消息,并等待响应,直到超时或收到响应。 6. `DBus::Connection::dispatch(DBusDispatchStatus* status)`:使用DBus事件循环处理DBus消息。 7. `DBus::Connection::add_filter(DBus::MessageFilterFunction function, void* user_data, DBus::FreeFunction free_data_func)`:添加DBus消息过滤器。 8. `DBus::Connection::remove_filter(DBus::MessageFilterFunction function, void* user_data)`:移除DBus消息过滤器。 9. `DBus::Connection::register_object(const char* path, const DBus::InterfaceVTable& vtable, void* user_data)`:注册DBus对象。 10. `DBus::Connection::unregister_object(const char* path)`:注销DBus对象。 11. `DBus::Connection::register_service(const char* service_name)`:注册DBus服务。 12. `DBus::Connection::unregister_service(const char* service_name)`:注销DBus服务。 13. `DBus::Connection::request_name(const char* name, unsigned int flags)`:请求DBus名称。 14. `DBus::Connection::release_name(const char* name)`:释放DBus名称。 15. `DBus::Connection::list_registered() const`:获取已注册的DBus名称。 这些是DBus::Connection类的常用方法,但不一定是全部方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值