docker原来早就可以跑GUI程序了(http://www.tuicool.com/articles/ayIzI3)。
libreoffice也是可以的。当然国内也有大牛再次优化,一直做到了noVNC的地步。当然,所谓noVNC还是需要有浏览器的。
从桌面系统用户的角度来说,浏览器是比较丑陋的存在。为什么呢?因为浏览器往往带有一个丑陋的插件机制,Adobe Flash Player。非常希望能够隔离掉这个家伙。从上面推酷的文章已经看到了这样的可能。然后,可以在docker里面装上openssh服务器,然后在主机上下载好flash player插件,最后用scp推送到docker-firefox里面就好。
我们希望比node-webkkit更加紧致或复杂的应用结构。(node-webkkit是非常优秀的说~)
像docker-firefox,docker-libreoffice这样的结构可以推而广之。包括lamp架构,lnmp架构,只需要在最后的状态做一次docker commit,并用docker save/load来做迁移。于是工作的重心转移了,转移到怎么去构建一个docker终极应用包。
就我自己来说,需要docker的是linux下的matlab,我没有办法在每一台电脑上安装它。可以说,个人用户有需求去docker一个自己使用度非常高的软件。值得注意的是,熟练用户的特征往往是非常擅长少数几款软件的使用,并且是只用少数几款软件就能解决全部问题。对他们而言,docker自己喜欢的软件是理所当然的需求。
对于专长流浪的小伙伴,docker一个kali是必不可少的。
那么发布商呢?发布商当然也可以把应用发布成docker。对于那些需要激活机制的软件,还可以发布一个特殊的docker专门用于应用的激活管理。这样,发布商的投放就更有针对性了。假如发布商都按照docker来投放产品的话,程序员的生态理所当然也就会发生改变:有一部分人会更加倾向与基础设施建设,另一部分专心开发docker。
对于终端用户来说,更有意义的是内容创作应用的docker,就像adobe创作家族等等。这些应用的主要是操作二进制文件,对互操作系统比较小,共享更改可以经由云(用户应用间的互操作到底有没有必要?)。假如把这些应用也docker化的话,会遇到一个问题:没办法docker商业操作系统。换句话说,在docker里面打包一个商业操作系统是法律和商业上不那么现实的问题,因为这相当于是捆绑销售,会削弱应用的价值。ReactOS作为开源NT实现而立项,最近基本处于僵死状态,不敢想象的是,当ReactOS以docker的角度出招,Windows昔日的辉煌还能保留多少。
临时的内容创作打包方案是docker wine,作为一种对Windows应用的打包。当然也存在相应的不足,wine并没有100%“模拟”Windows系统。docker wine 无论如何,已经具有一定的发烧友价值。
docker的问题可能会出在,过于频繁地重建容器。只要能够规避这个问题,那么docker就是一个不错的选择。
总之,docker算是一种不错的应用保值方案。