用Docker交付桌面应用程序是个好主意吗?

时间:2018-12-27 09:47:36

标签: docker lamp

我对将桌面应用交付给用户的一些好方法感兴趣。 该应用程序是使用LAMP制作的网络应用程序,但是我需要和用户才能在桌面上运行它。 我想为此选择一些好的跨平台解决方案。

我已经有此应用的docker映像。

是否存在使用docker向用户交付应用程序的习惯?类似于安装docker(如果尚未安装)并运行docker映像的安装包。 有经验吗?

1 个答案:

答案 0 :(得分:0)

Docker不适用于此用例。我的建议是选择一种广泛使用的脚本语言(例如Python或JavaScript)进行实现,并使用嵌入式数据库(例如SQLite)作为持久层;那么您的最终用户只需要安装语言解释器(他们可能已经拥有)和您的应用程序,他们就可以使用他们已经拥有的前端浏览器。

Docker在这里提出了许多挑战。如果您浏览其他个问题,就会发现人们经常打中一些问题:

  • 在非Linux上,运行Linux应用程序的Docker需要一个Linux VM,这会将“轻量级容器系统”变成“成熟的占用资源的虚拟机”。

  • 在非Linux上,可访问的主机文件系统路径集受到限制。如果您的应用程序试图访问Windows F:驱动器上的用户数据以选择一个最近的问题,则它将无法正常工作。

  • 如果您的应用程序管理一定数量的“用户”数据,则在每个OS上管理文件系统权限都会很棘手,并且会有所不同。

  • 如果您的应用程序尝试提供一个GUI,并且您试图构建“一个可移植的映像”,那么您将不得不使用Linux X11平台;并且需要在主机上匹配X服务器(需要额外安装软件!),以及一些额外的挑剔绑定安装,环境变量和主机设置。

  • 如果您的应用程序尝试呈现GUI,则默认情况下它无法访问用户的非Docker桌面首选项,因此它的外观和行为可能与本机应用程序不同。

  • Docker完全需要一定数量的升级特权才能运行,因此,如果您遇到安全问题(尤其是在启动处理上述所有问题的容器的机器中),则很有可能会损害整体利益系统。

这些都不是无法克服的,但是很难看到工作带来的任何特殊好处和所需的额外复杂性。