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

当我尝试在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 information 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服务器)。

以上是 在Docker中运行Chromium-Gtk:无法打开显示:0 的全部内容, 来源链接: utcz.com/qa/420242.html

回到顶部