在Windows主机上的linux服务器上的linux docker中运行GUI应用

问题描述 投票:0回答:1

以下系统是由我(不是我)构建的:

Windows 10操作系统已安装在本地计算机上。连接通过客户端(例如SmarTTY或Bitwise SSH客户端)与Ubuntu 16.04连接到远程服务器。docker容器在服务器上启动。

如何配置系统,以便可以从远程服务器上的容器启动GUI应用程序并与之交互?

我不太了解端口和DISPLAY值系统。

使用smarTTY及其vcxsrv客户端,我可以在容器外部运行此应用程序,但不能在容器内部运行-有关丢失某些Java文件的错误。

编辑:添加报告和更多信息我具有用于docker的运行命令的配置:

docker run --rm --runtime=nvidia -it --name delobo \
-v /opt/pycharm-community-2019.1.3/:/opt/pycharm/  -v $(pwd):/workspace \
-v /media/:/media/ \
-v /home/boyko/.Xauthority:/home/boyko/.Xauthority \
-e XAUTHORITY=/home/boyko/.Xauthority \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw --privileged \
-e DISPLAY=$DISPLAY -v $HOME/:/home/boyko \
--network=host tensorflow_me bash

而且一直以来,当我尝试运行PyCharm的GUI时,都会得到类似的内容:

Start Failed: Internal error. Please report to http://jb.gg/ide/critical-startup-errors

com.intellij.ide.plugins.PluginManager$StartupAbortedException: java.lang.reflect.InvocationTargetException
        at com.intellij.ide.plugins.PluginManager.lambda$start$0(PluginManager.java:78)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at com.intellij.ide.plugins.PluginManager.lambda$start$0(PluginManager.java:75)
        ... 1 more
Caused by: java.lang.UnsatisfiedLinkError: /opt/pycharm/jre64/lib/libawt_xawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
        at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
        at java.base/java.lang.ClassLoader$NativeLibrary.load(Unknown Source)
        at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(Unknown Source)
        at java.base/java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.base/java.lang.Runtime.load0(Unknown Source)
        at java.base/java.lang.System.load(Unknown Source)
        at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
        at java.base/java.lang.ClassLoader$NativeLibrary.load(Unknown Source)
        at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(Unknown Source)
        at java.base/java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.base/java.lang.System.loadLibrary(Unknown Source)
        at java.desktop/java.awt.Toolkit$3.run(Unknown Source)
        at java.desktop/java.awt.Toolkit$3.run(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.desktop/java.awt.Toolkit.loadLibraries(Unknown Source)
        at java.desktop/java.awt.Toolkit.<clinit>(Unknown Source)
        at com.intellij.ui.AppUIUtil.updateFrameClass(AppUIUtil.java:172)
        at com.intellij.idea.StartupUtil.prepareAndStart(StartupUtil.java:107)
        at com.intellij.idea.MainImpl.start(MainImpl.java:20)
        ... 6 more


Also, an UI exception occurred on attempt to show above message:
java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit
        at java.desktop/java.awt.Component.<clinit>(Unknown Source)
        at com.intellij.idea.Main.showMessage(Main.java:158)
        at com.intellij.idea.Main.showMessage(Main.java:134)
        at com.intellij.ide.plugins.PluginManager.processException(PluginManager.java:140)
        at com.intellij.ide.plugins.PluginManager$1.uncaughtException(PluginManager.java:63)
        at java.base/java.lang.Thread.dispatchUncaughtException(Unknown Source)

我不知道如何解决此问题。

这里必须注意,如果我们使用Linux作为主要的本地计算机(而不是必须使用Windows,则没有错误,并且PyCharm可以正常运行。

linux windows docker pycharm x11
1个回答
0
投票
sudo apt-get install libxrender1 libxtst6 libxi6

所以现在我显示了pycharm,并且交互良好。

写的主要技巧是there

© www.soinside.com 2019 - 2024. All rights reserved.