当前位置: 首页 > 面试题库 >

在Docker中运行Chromium-Gtk:无法打开显示:0

牟星火
2023-03-14
问题内容

当我尝试在docker容器中运行Chrome时,出现以下错误:Gtk:无法打开显示::0

Dockerfile:(基于https://registry.hub.docker.com/u/jess/chromium/dockerfile)

FROM debian:jessie

# Install Chromium
RUN sed -i.bak 's/jessie main/jessie main contrib non-free/g' /etc/apt/sources.list && \
    apt-get update && apt-get install -y \
    chromium \
    chromium-l10n \
    libcanberra-gtk-module \
    libexif-dev \
    libpango1.0-0 \
    libv4l-0 \
    pepperflashplugin-nonfree \                                                                          
    --no-install-recommends && \
    mkdir -p /etc/chromium.d/

# Autorun x11vnc
CMD ["/usr/bin/chromium", "--no-sandbox", "--user-data-dir=/data"]

构建并运行:

docker build -t chromium
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --privileged chromium

和错误:

[1:1:0202/085603:ERROR:browser_main_loop.cc(164)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more informathtml" target="_blank">ion on developing with the sandbox on.
No protocol specified
[1:1:0202/085603:ERROR:browser_main_loop.cc(210)] Gtk: cannot open display: :0

问题答案:

我对铬不太了解,但是,当:-)我告诉X客户端连接到:0时,我的意思是连接到端口6000(或运行X服务器的任何设备) on)+
0,在这种情况下为端口6000。实际上,DISPLAY是IP:PORT(如上所述为+6000)。X服务器正在您的主机上运行,​​因此,如果您进行以下设置:

DISPLAY=your_host_ip:0

那可能行得通。但是,X服务器不允许仅来自任何旧客户端的连接,因此,您将需要打开X服务器。在您的主机上,运行

xhost +

在运行Docker容器之前。所有这些都是假设您可以在主机上运行Chrome(即,主机上存在X服务器)。



 类似资料:
  • 问题内容: 我已经在Linux Mint上将jenkins安装为服务。我正在尝试运行以python编写的测试,并且脚本无法运行Firefox。这条线是个问题。 … self.browser = webdriver.Firefox()… 当我以詹金斯用户身份登录时,我无法运行Firefox。得到这个错误: (进程:3758):GLib-CRITICAL **:g_slice_set_config:断

  • 我在这里的问题中遇到了同样的问题:Tomcat在eclipse中启动,但无法连接到http://localhost:8085/,这意味着我无法在浏览器上打开http://localhost:8080/: 我使用的是Tomcat 7.0.27、Eclipse Europa和Java1.6.0_32。我看到了Balusc的答案,但问题是我无法选择Tomcat安装(下图)。 这里会出什么问题? PS:似

  • 问题内容: 我试图在已经安装了Node 0.8.14的新Ubuntu 12.04实例上设置节点环境,但是在尝试运行时遇到了问题。因此,当我尝试时,它说我需要以root或管理员身份运行它: 但是,当尝试以sudo身份运行它时,它表示以下内容: 在我的package.json中,它包含以下脚本: 由于我已经在自己的计算机(Mac)上安装了所有的依赖关系,因此这些依赖关系是有效的。有人知道为什么会这样吗

  • 我在docker compose yml文件中为广告侦听器配置了以下配置 警告O.apache.kafka.clients.networkclient-获取相关id为1的元数据时出错:{foo=leader_not_available} 主机可以从我的机器ping,因为它都在同一个网络中,没有防火墙问题。在docker容器中使用命令时,可以看到相同的主机名。我是不是漏掉了什么?

  • E/AndroidRuntime:致命异常:main 进程:za.co.riggaroo.motioncamera,pid:17583 kotlin.typeCastException:null不能强制转换为非空类型kotlin.boolean(位于za.co.riggaroo.motioncamera.mainactivity$setuparmsystemtogle$2.ondatachange

  • 问题内容: 我正试图让nvidia-docker在我的centos7系统上运行: 到目前为止,一切都很好: 现在,让我们尝试使用nvidia运行时: 但是奇怪的是 问题答案: 所以…最后,我完全禁用了selinux并重新启动,并对其进行了修复。