运行 linux docker linux 服务器上 windows 主机上的 运行 GUI 应用程序
Run GUI app in linux docker on linux server on windows host
构建了以下系统(不是我构建的):
Windows 10 操作系统安装在本地机器上。
通过客户端(如 SmarTTY 或 Bitwise SSH 客户端)使用 Ubuntu 16.04 连接到远程服务器。
docker 容器在服务器上启动。
如何配置系统以便可以从远程服务器上的容器启动 GUI 应用程序并与之交互?
我不太了解端口和显示值系统。
使用 smarTTY 及其 vcxsrv 客户端,我可以 运行 这个应用程序在容器外,但不能在容器内 - 有关于丢失一些 java 文件的错误。
编辑:添加报告和更多信息
我为 docker:
配置了 运行ning 命令
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[=16=](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[=16=](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.run(Unknown Source)
at java.desktop/java.awt.Toolkit.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.uncaughtException(PluginManager.java:63)
at java.base/java.lang.Thread.dispatchUncaughtException(Unknown Source)
我不知道如何修复这个问题。
必须注意,如果我们使用 Linux 作为主要的本地机器(而不是像我必须的那样使用 Windows),则没有错误,并且 PyCharm 运行正常。
结果是这样的:我需要在根目录下的容器中安装这些包:
apt-get install libxrender1 libxtst6 libxi6
所以现在我显示了 pycharm,并且互动良好。
主要提示已编写并描述 there
构建了以下系统(不是我构建的):
Windows 10 操作系统安装在本地机器上。 通过客户端(如 SmarTTY 或 Bitwise SSH 客户端)使用 Ubuntu 16.04 连接到远程服务器。 docker 容器在服务器上启动。
如何配置系统以便可以从远程服务器上的容器启动 GUI 应用程序并与之交互?
我不太了解端口和显示值系统。
使用 smarTTY 及其 vcxsrv 客户端,我可以 运行 这个应用程序在容器外,但不能在容器内 - 有关于丢失一些 java 文件的错误。
编辑:添加报告和更多信息 我为 docker:
配置了 运行ning 命令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[=16=](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[=16=](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.run(Unknown Source)
at java.desktop/java.awt.Toolkit.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.uncaughtException(PluginManager.java:63)
at java.base/java.lang.Thread.dispatchUncaughtException(Unknown Source)
我不知道如何修复这个问题。
必须注意,如果我们使用 Linux 作为主要的本地机器(而不是像我必须的那样使用 Windows),则没有错误,并且 PyCharm 运行正常。
结果是这样的:我需要在根目录下的容器中安装这些包:
apt-get install libxrender1 libxtst6 libxi6
所以现在我显示了 pycharm,并且互动良好。
主要提示已编写并描述 there