我想在Docker容器中运行Java GUI应用程序,然后将其托管在我的Ubuntu服务器上。我想通过Web浏览器访问该应用程序。
这是我要放入Docker容器中的应用程序:https://github.com/Dabomstew/universal-pokemon-randomizer
我是否必须在浏览器中为该应用程序添加自定义UI,还是可以在浏览器中使用Java gui?
我已经看到了其他一些项目,所以我认为应该是可能的。我不确定这样做是如何完成的,但是需要多少工作...
我是docker的新手,希望任何人都可以帮助我:) 谢谢!
答案 0 :(得分:1)
浏览器只能运行非常有限的一组语言运行时;基本上只有Javascript以及可以重新编译为Javascript的内容。没有通用的方法来获取正在运行的桌面应用程序并将其重新发布到浏览器中。
Docker在这里只是一个中间层。这对于诸如网络端口以外的自包含HTTP服务器之类的事情非常有用。对于命令行应用程序是可以的(如果您不介意以三倍于命令行的速度以root身份运行它,则可以正常工作);而且对GUI应用程序不利(仅在Linux上有效,命令行又长又神秘,而且看起来仍然很有可能会有所不同)。它没有提供任何穿越这些层的魔力。
您也许可以找到一些可以弥补这些空白的现有软件;也许基于浏览器的X服务器,或者也许一个成熟的VM系统可以在浏览器中显示VM的桌面,或者也许您可以使用几乎死掉的Java applet系统,或者也许有一个Java层提供基于Websocket的客户端,并允许您对Java本机GUI应用程序进行少量修改。
我鼓励您首先使您的应用程序正常运行,并解决“我如何使其实际显示为我想要的方式”问题,然后在适当时才引入Docker。它提供的隔离层会使许多事情变得更加困难,尤其是在您积极开发或探索未知空间时。