我正在尝试让一个可以在我的机器上完美运行的应用程序在docker上运行,这是我的docker文件:
FROM openjdk:11-jre-slim
VOLUME /tmp
ADD someJar.jar someJar.jar
ADD lib lib
ADD config.properties config.properties
ENTRYPOINT ["java", "-javaagent:lib/aspectjweaver-1.9.2.jar",
"-javaagent:lib/spring-instrument-5.1.6.RELEASE.jar", "--module-path",
"lib/javafx-sdk-11.0.2", "--add-modules=javafx.controls", "-
Dprism.verbose=true", "-jar","someJar.jar"]
Run Code Online (Sandbox Code Playgroud)
我还尝试将其基于高山openjdk11版本,其结果相同:
FROM adoptopenjdk/openjdk11:alpine
VOLUME /tmp
RUN apk update && apk add libx11 mesa-gl gtk+3.0 && apk update
ADD someJar.jar someJar.jar
ADD lib lib
ADD config.properties config.properties
ENTRYPOINT ["java", "-javaagent:lib/aspectjweaver-1.9.2.jar", "-javaagent:lib/spring-instrument-5.1.6.RELEASE.jar", "--module-path", "lib", "--add-modules=javafx.controls", "-Dprism.verbose=true", "-jar","someJar.jar"]
Run Code Online (Sandbox Code Playgroud)
The lib folder contains the linux flavor of the openJFX runtime (.so files and .jar files). I am developing this on …
因此,我有一个基于 Qt5 的 C++ GUI,我想从 Docker 容器内运行它。
当我尝试开始时
docker run --rm -it my_image
Run Code Online (Sandbox Code Playgroud)
这会导致错误输出
qt.qpa.xcb: could not connect to display localhost:10.0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
Run Code Online (Sandbox Code Playgroud)
所以我寻找如何做到这一点。我在 docker 容器中找到了 GUI Qt 应用程序,并基于此调用它
QT_GRAPHICSSYSTEM="native" docker run -it …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试在docker容器中运行一些GUI应用程序.我一直在github尝试jessie frazelle的那些.但是,我可以构建图像(或从docker hub获取)并运行它们没有任何可见的错误但是,窗口不显示(我无法看到应用程序).
我在Ubuntu 16.04上运行Docker版本1.13.1
图像来自:
FROM debian:stretch
MAINTAINER Jessie Frazelle <jess@linux.com>
RUN apt-get update && apt-get install -y \
libreoffice \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
ENTRYPOINT [ "libreoffice" ]
Run Code Online (Sandbox Code Playgroud)
我正在使用的运行命令如下:
docker run -d \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /etc/localtime:/etc/localtime \
-e DISPLAY=unix$DISPLAY
-v $HOME/Documents:/root/Documents \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--name libreoffice \
jess/libreoffice
Run Code Online (Sandbox Code Playgroud)
在搜索了很多来源之后,我可以看到上面的内容应该可行,并且大多数人都说在运行命令中需要以下几行,
-v /tmp/.X11-unix:/tmp/.X11-unix
-e DISPLAY=unix$DISPLAY
Run Code Online (Sandbox Code Playgroud)
但我仍然无法显示窗口.
任何帮助,将不胜感激.
我为 opencv 和面部识别创建了一个 docker 图像以简化设置过程。
但是recognize.py 脚本需要X Server 来显示图像结果。这是我到目前为止所做的:
sudo docker run -t -d --name opencv opencv:latest
sudo docker exec -it opencv bash /extract-embeddings.sh
sudo docker exec -it opencv bash /train-model.sh
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都很好。最后一步是在图像中显示结果的实际比较。
sudo docker exec -it opencv bash /face-recognition.sh
Run Code Online (Sandbox Code Playgroud)
它给出了输出:
[INFO] loading face detector...
[INFO] loading face recognizer...
No protocol specified
: cannot connect to X server :0
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下命令运行容器:
sudo docker run -t -d --name opencv -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix opencv:latest
Run Code Online (Sandbox Code Playgroud)
但它没有帮助。
我想为 GUI 应用程序(例如 Chrome)创建一个 docker 映像,并且希望这个 GUI 应用程序可以在没有安装 X 服务器的裸 Linux 服务器上运行。
我知道为 X Window 客户端(GUI 应用程序本身)创建和运行 docker 映像非常容易。这需要在主机上安装并运行 X 服务器。
sudo docker run -ti -v /tmp/.X11-unix:/tmp/.X11-unix xorg xterm -display :0
Run Code Online (Sandbox Code Playgroud)
但对我来说,我需要 X 客户端和服务器都在 docker 容器中运行。
这是我的 dockerfile:
FROM ubuntu:14.04
RUN apt-get update && apt-get install -y xorg
Run Code Online (Sandbox Code Playgroud)
我通过命令运行图像:
sudo docker run -i -t --rm -e DISPLAY=:0 --privileged xorg xinit
Run Code Online (Sandbox Code Playgroud)
X 服务器可以启动,屏幕变黑,几秒钟后,xterm 窗口显示。但是,我无法使用键盘和鼠标。屏幕似乎冻结了
我搜索并尝试了很多解决方案,但没有人能解决这个问题。(我不需要虚拟x服务器)
我正在运行一个docker(我自己构建),这是一个运行E2E测试的docker.浏览器已启动并运行但我希望有另一个很好的功能,我希望能够在线观看会话.
我的docker run命令是:
docker run -p 4444:4444 --name ${DOCKER_TAG_NAME}
-e Some_ENVs
-v Volume:Volume
--privileged
-d "{docker-registry}" >> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
我能够导出截图,但在某些情况下,它还不够,观察测试的确切状态的能力将是惊人的.我尝试了很多选择,但我走到了尽头,任何帮助都会很棒.
Python 2.7ubuntu:14.04docker在Ubuntu服务器上运行.
我知道它的复制本,但没有人回答他,所以......
我想构建一个完整版的 Ubuntu 14 桌面作为gui 应用程序的基础映像,我知道如何通过 debootstrap 在 Ubuntu 桌面版本上构建,如https://docs.docker.com/articles/baseimages/ 中所述,但这是一个最小的Linux版本,一些GUI应用程序无法完美运行,因为缺少一些基本组件,例如字体系列,所以我想要完全控制基本图像,谢谢!
我是 python 新手,正在尝试构建一个小应用程序。它需要是一个 GUI 应用程序,我想用 docker 将它容器化。我收到以下错误,找不到解决方案
No protocol specified
No protocol specified
Traceback (most recent call last):
File "tkinker.py", line 7, in <module>
tinker = Tk()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1818, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: couldn't connect to display ":0.0"
Run Code Online (Sandbox Code Playgroud)
它在本地启动,但不会在 docker 中启动。我的操作系统是 Xubuntu。
我创建了一个示例应用程序(如下),请参阅 run-test.sh https://github.com/jeremysells/test/tree/master/docker-tkinter
问题最明确,即
如何在Docker 远程容器中启动完整的桌面环境(KDE,XFCE,Gnome无关紧要)。
我是挖在互联网上,还有 有 许多关于相关主题的问题,但不一样的,他们所有关于如何运行GUI 应用程序不完整的桌面。
我发现:
但实际上我一直在这里,总是遇到任何错误:
... (EE) Invalid screen configuration 1024x768 for -screen 0
... Cannot open /dev/tty0 (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
您能否给出一些Dockerfile行以达到目标?
这是我第一次使用 VNC 和 docker。我想连接到我的 docker 的 GUI。
我尝试按照一些在线教程进行操作,但我的 VNC 查看器无法连接到显示器。我在我的 dockerfile 中公开了端口 5900,并且在 docker 内部我运行了
Xvbf :1 -screen 0 1600x1200x16 & export DISPLAY=:1和x11vnc. 它似乎有效,我收到消息说桌面位于端口 5900。但是我仍然无法在 vnc 查看器中连接到 localhost:5900。
我做错了什么,我可以用什么来诊断我的问题?谢谢!
我想在我的 Windows 10 机器(i5、8GB、240 GB ssd、2&1 笔记本)中有一个 Linux 开发环境(Java、Intellij Idea、Clojure 和 ClojureScript)。我可以用:
我想尝试第二种选择。在桌面上的 Docker Containers 中,作者使用以下命令运行 Chrome 浏览器 docker:
$ docker run -it \
--net host \ # may as well YOLO
--cpuset-cpus 0 \ # control the cpu
--memory 512mb \ # max memory it can use
-v /tmp/.X11-unix:/tmp/.X11-unix \ # mount the X11 socket
-e DISPLAY=unix$DISPLAY \ # pass the display
-v $HOME/Downloads:/root/Downloads \ # optional, …Run Code Online (Sandbox Code Playgroud) 为了检查在 docker 镜像中运行的 selenium 测试,我尝试设置一个 VNC 来验证测试期间发生的情况。
我正在按照此处提出的建议创建一个新的 docker 映像,并在 中添加以下附加行Dockerfile:
RUN apt-get install -y x11vnc
RUN mkdir ~/.vnc
RUN x11vnc -storepasswd 1234 ~/.vnc/passwd
Run Code Online (Sandbox Code Playgroud)
然后我使用以下命令启动了 docker 镜像:
docker run -p 5900 --rm -it --entrypoint /bin/bash selenium-tests
Run Code Online (Sandbox Code Playgroud)
并开始krdc作为我的 VNC 查看器。那么现在怎么办?
我在krdc. 也许我错过了什么?我是否必须在 docker 中明确启动 vnc 代码?我需要向docker命令传递额外的参数吗?
我正在构建一个具有 Maven 和一些依赖项的 Docker 容器。然后它在容器内执行脚本。看起来,其中一个依赖项需要 Xserver 才能工作。屏幕上没有显示任何内容,但这似乎是必要且无法避免的。
我让它工作了,ENV DISPLAY=x.x.x.x:0在 Dockerfile 上放置了一个,它连接到外部 Xserver 并且它工作了。但重点是让 Docker 成为一个自给自足的容器。
因此,我需要将 Xserver 添加到我的容器中,并在 Dockerfile 中添加必要的内容。我希望 Xserver 只能由 Docker 容器本身访问,而不能从外部访问。
FROM我的 Dockerfile 的 是不可FROM ubuntu:15.04更改的,因为我的 Dockerfile 有很多内容取决于该特定版本。
我读过一些关于如何从 docker 容器连接到 Docker 主机的 Xserver 的文章,如下所示。但正如我提出问题的标题一样,Docker 主机是无头的,并且没有 Xserver。
apt-get要安装到容器中才能拥有 Xserver,最少需要安装哪些软件包?ENV DISPLAY=:0. 它是否正确?docker run?谢谢。