上一次我们简单介绍了一下docker的概念以及基本的使用,这期居正继续给大家带来奇妙的docker之旅。说到免费的docker,就不得不提起openshift——它可谓是redhat“闻名天下”的免费docker服务。
(点击如图所示的sign up for free来使用github账户注册)
通过以上的文章,你可以了解如何简单的使用openshift搭建wordpress博客、以及如何通过sftp来进行管理。居正这里就直接给链接了。
docker不同于“免费空间”。所谓的免费空间(或大部分虚拟主机)就是仅仅给你一个对网站及文件的管理权限,而docker则直接在服务器上给你了一个账户,你可以使用S*S*H方式登录并运行一些不需要太大权限的程序——
例子1:使用openshift搭建百度贴吧自动签到教程:http://tieba.baidu.com/p/3649958906?see_lz=1
此项目在github的链接:https://github.com/kookxiang/Tieba_Sign/tree/master(直接download zip下来)
这你就不得不详细介绍下docker“cartridge”机制的强大了,在openshift中你可以给你的应用程序增加各种各样的插件:
在应用状态里点击这一行字
然后你就可以看到琳琅满目的插件了。我们贴吧签到中选用的是cron插件,这个插件的目的就是定时执行程序。我们知道对于一个网页应用来说,你不去访问它,它自己是不会执行的。因为你总不可能隔三差五地手动打开贴吧签到机去签到,所以我们使用这个“定时”功能,让程序自己每隔一段时间执行一次签到的操作。这也是虚拟主机所不能满足的。
添加完了之后,系统会给你一个提示。这段话大概是说你可以在应用程序的根目录下面找到.openshift/cron文件夹,将执行频率不同的脚本分别放在minutely,hourly,daily,weekly,monthly这些文件夹里。比如按照上面教程中的例子是这样:
登录SSH,然后依次进入app-root/runtime/repo/.openshift/cron/minutely
在winscp中路径会显示为/var/lib/openshift/*********/app-root/runtime/repo/.openshift/cron/minutely(*********为随机字符串,每个人都不同,以实际为准)
然后新建一个sh文件,你可以将文件名写成”qiandao.sh”,然后输入以下内容
php /var/lib/openshift/*********/app-root/runtime/repo/php/cron.php
(*********为随机字符串,每个人都不同,以实际为准,填入你的winscp显示的)
然后保存,就这样,我们完成了cron设置。
我们先用winscp登录SSH,然后依次进入app-root-runtime-repo-.openshift-cron-minutely
然后新建一个sh文件,名字随意,后缀我们填.sh
创建后会弹出一个编辑框,我们输入
php /var/lib/openshift/*********/app-root/runtime/repo/cron.php
在这里我们需要注意的是我们的路径中没有/php文件夹了,所以命令中也就不需要了
细心的童鞋们会发现,其实那个*******随机字符串也就是我们的登录名去掉@后面一部分
创建成功后,cron任务就添加完成了
所以,归根到底一句话,docker就相当于一台权限较低的VPS,却可以满足我们的大部分需求。
例子2:前段时间我曾在月刊上发表过搭建QQ聊天机器人(python版)的教程(http://dfkan.com/712.html),其实它也是可以用openshift搭建的,因为openshift原生支持python命令。我给大家提供一个思路:把这一大堆程序文件传到你的网站根目录(…/runtime/repo/php目录),然后s*s*h登录之,输入那个“nohup python2 QQBot.py &”运行命令,使用“cat log.log”来查看运行的状况。等到时间差不多了在浏览器中输入域名+/v.png直接通过http的方式读取到二维码,用手机QQ扫描它,这样就进入了登录流程,然后就可以工作了。我自己试过,与在自己电脑上运行的效果差不多,只不过对话的反应速度明显慢了许多。。
*除此之外,你根本不比担心你在上openshift的空间会被墙,所以可以尽管放一些和谐的东西,比如用7ghost搭建谷歌镜像站啥的啦~
这里居正再推荐一个日本的免费docker:https://arukas.io,相比较于openshift,它支持TCP连接(openshift对外只能HTTP连接)你可以搭建一些更美妙的服务,像科*学*上*网什么的(关于此类的教程互联网上也有,自己去搜)。不过它现在处于公测阶段,而且因为用户数量太多而暂停注册了。不过你大可以等待明年2月内测结束,开放注册时再玩~ 免费的套餐一共可以创建三个容器,而且还有免费的api,做一些自动化程序什么的也挺方便。
其实,docker的玩法不只限于这么一点,居正这里的介绍也只是用以抛砖引玉罢了。大家自己去探索吧~