零成本,免费空间,直接使用当今最火的Docker搭建Wordpress/Ghost博客,不用学习docker,可以一键搭建。

Docker的热门同样在国内也催生了众多的基于了Docker技术的服务,本文要介绍的DaoCloud就是一家采用 Docker 轻量级虚拟化平台,DaoCloud支持持续集成、镜像构建和云端容器托管,与Github、Bitbucket、Coding、GitCafe等都有合作,实现了Code to Cloud 的自动化流程。


Docker目前针对个人开发者、小型开发项目提供免费服务,支持最多 2 个容器,内存256MB,MysqL数据库50MB,内存20MB。经过部落测试可以在DaoCloud上安装并运行WordPress、Ghost博客、Niginx、Java等,数据服务则支持MongoDB、MySQL、Redis等。


一、DaoCloud空间申请和创建MysqL数据库


1、注册DaoCloud:

    DaoCloud首页:https://www.daocloud.io/

    点击这里注册DaoCloud

2、验证邮箱:

    注册完成后,查看注册所使用的邮箱,会收到一封验证邮件,点击链接验证一下邮箱。(现在网上这么多服务,如果忘记密码,就可以通过邮箱取回密码,所以请必须验证邮箱)

3、注册DaoCloud成功后,就可以登录到DaoCloud管理控制面板了,可以看到有代码构建、镜像仓库、服务集成、我的主机、应用管理、加速器等等。

DaoCloud管理控制中心

4、创建MysqL数据库。点击“服务集成”,这里是来自于DaoCloud以及其他第三方SaaS提供商的热门应用服务,我们后面要搭建的Wordpress需要用到MysqL,所以创建一个MysqL数据库。

DaoCloud创建MysqL数据库

5、点击“创建服务实例”。

6、接下来为服务实例指定“服务实例名称”,服务实例名称只能包含英文数字、下划线 _、小数点 .、和减号 -,并且不能与现有服务实例重名,配置的话免费是50MB空间,20MB内存。

7、创建MysqL成功后,进入服务实例页面,在概览选项卡可以查看服务的参数:连接地址、实例名、用户和密码。

二、DaoCloud空间安装运行Wordpress应用
1、DaoCloud的镜像仓库,可以看到有两类应用:我的镜像和DaoCloud 镜像。DaoCloud 镜像是 DaoCloud 预置在商店中的一些实例应用,主要有操作系统、实用工具、技术栈、应用等,包括PHP、MysqL、Nginx、Ghost、Ubuntu、CentOS、Wordpress等等。

DaoCloud镜像仓库

2、选择Wordpress镜像,直接点击屏幕右上角的部署最新版本。

3、在部署的页面中,需要指定容器实例的名称,容器的配置最高是内存256MB的,Wordpress占内存大户,建议使用高配置的。

DaoCloud指定容器配置


4、Wordpress需要用到MysqL数据库,我们在创建实例时要为Wordpress绑定好我们刚刚创建的MysqL。(点击放大)

5、稍等一会儿就可以看到Wordpress部署成功了,目前 DaoCloud 为用户提供格式为 *.daoapp.io 的二级域名,域名的默认构成方式为项目名称和容器名称的组合,中间用中划线连接。

6、点击打开Wordpress,第一次需要先配置好你的Wordpress。

7、Wordpress在DaoCloud空间上正常运行,后台一切正常。

DaoCloud运行Wordpress正常


8、可以直接在DaoCloud的Wordpress后台安装插件。

DaoCloud正常安装插件

9、DaoCloud运行Wordpress可以修改固定链接。

DaoCloud修改固定链接

10、需要提醒的是:DaoCloud运行Wordpress由于上传的文件如图片等会保存在容器中,容器重新部署可能会导致上传文件的丢失,上面安装插件、修改配置等都会被清除。


三、DaoCloud空间安装运行Ghost博客


1、Wordpress虽然可以成功在DaoCloud空间上运行,但由于容器不能持续存储,因此上传的文件还有一些配置都会在重新部署应用后被清除。所以Ghost博客才是DaoCloud空间最佳选择。

DaoCloud安装Ghost博客


2、之前部落分享了VPS主机搭建Ghost环境:安装Nginx,Node.js,MariaDB 和Ghost,Ghost博客环境安装的门槛比较高,且过程复杂。而DaoCloud空间提供了Ghost博客镜像,可以一键部署。
3、安装Ghost博客的方法类似于Wordpress,选择创建MysqL数据库,然后直接到镜像仓库中选择Ghost博客镜像,点击部署。
DaoCloud选择Ghost博客镜像

4、然后是设置应用名称、所属镜像等。部署时在服务&环境绑定 MySQL 服务,切记此处需要使用 mysql 作为连接字符串的别名,然后点击立即部署。

5、最后在DaoCloud空间上运行Ghost博客成功。

6、第一次启动后,您可以访问 http://your-ghost.daoapp.io/admin 进入管理界面。

7、DaoCloud空间上运行Ghost博客一切正常,且对Ghost博客修改编辑等都不会在重启实例后消失。

四、DaoCloud空间应用绑定域名管理操作


1、在DaoCloud空间应用管理中,主要有容器、配置、监控、日志、事件、域名、发布、设置。

DaoCloud应用管理操作

2、容器配置可以修改内存大小,更改数据中心等。

3、监控选项中主要是CPU、内存、网络带宽等使用统计。

DaoCloud应用统计

4、在日志中可以看到相应的记录,错误日志也可以从这里找出,下图是我测试Wordpress时主机超出内存的错误提示。

5、DaoCloud空间支持域名绑定。输入您的自有域名,点击确认可获得 DaoCloud 为您生成的域名绑定专用 CNAME 地址。已经备#案的域名可以联系客服,让他们专门提供已备*案域名的CNAME,这样就不用通过海外线路再解析到国内了。

6、获取了域名的CNAME后,你就可以到你的域名DNS管理处修改域名的CNAME记录了。

7、等到域名DNS生效后,就可以通过自己的域名来访问应用了。没有BA号的域名会先访问国外的节点然后再绕回到国内,速度上会比直接使用DaoCloud空间二级域名要慢。

五、DaoCloud空间代码构建和自制镜像


1、上面我们利用DaoCloud空间提供的Wordpress和Ghost博客镜像一键部署了应用,但是Docker的强大之处不在于此,而是可以让我们自己构建代码,发布镜像,从而实现应用一键交付。

DaoCloud构建代码


2、点击“代码构建”,然后直接创建新项目。

DaoCloud新建项目


3、为项目指定“项目名称”、设置代码源、是否开启持续集成、发布应用镜像等。注意:项目名称只能包含英文数字、下划线 _、小数点 .、和减号-,并且不能与现有项目重名。设置代码源:代码源指定了您项目的代码仓库位置,关联代码源后,您对代码源的操作会自动触发项目的相应动作比如持续集成和镜像构建。(点击放大)

4、在代码源中可以设置与Github、Bitbucket、Coding、GitCafe账户同步。

5、点击开始创建,系统将自动根据您代码仓库主分支的最新代码启动第一次应用构建过程(标签为master-init)。在日志中可以看到构建的全过程。

6、这里部落以coding.net上一个开源的静态博客来作演示,首先是fork这个项目,代码:https://coding.net/u/openwrtio/p/portal/git/tree/1.0.0/,修改其中的docs/index.md即为博客首页。在“设置代码源”添加刚才提交coding的项目。

DaoCloud生成版本


7、项目中的Dockerfile文件决定了部署应用时安装依赖包、对 Apache 服务和 PHP 参数进行配置等,每次生成应用时会耗时比较长,因此需要耐心等待。Dockerfile 具体语法请参考:https://docs.docker.com/reference/builder/

8、生成镜像后,就可以在“我的镜像”中看到了,点击部署。

9、然后是设置应用名称、所属镜像、运行环境等。(点击放大)

10、成功部署自己制作的镜像。

11、DaoCloud空间提供了持续集成功能,每次git push后将自动触发持续集成。或者您可以通过在代码根目录放置一个daocloud.yml文件来配置您的测试任务,参考配置文件示例:
p_w_picpath: daocloud/ci-golang:1.4 services: - mongodb - mysql - redis env: - MYENV = "hello" install: - echo $MYENV - echo "This is an install segment" - echo "Here, we usually run scripts to setup a base environment" before_script: - echo $MYENV - echo "This is an before_script segment" - echo "Here, we usually run scripts to prepare our test" script: - echo $MYENV - echo "This is an script segment" - echo "Run test cases here" - echo "" - echo "Below shows how to use services" - ping -c 2 mongodb - ping -c 2 mysql - ping -c 2 redis 
12、更新了代码后,如果你已经设置了自动发布则DaoCloud空间自动更新,否则可以自己手动拉取镜像版本。

DaoCloud自动更新代码


六、DaoCloud空间其它功能:Docker加速器和添加自有主机


1、DaoCloud 加速器是我们为中国开发者提供的 Docker Hub Mirror 服务,它可以解决Docker 官方镜像在国内拉取速度慢的问题。提供了1000GB总镜像流量、20000总请求数、100总独立IP数的免费配额。注意:Docker 1.3.2版本以上才支持加速器。

Docker加速器

2、添加自有主机。DaoCloud 支持包括微软 Azure、亚马逊 AWS、阿里云、UCloud、×××等云主机服务,用户可以通过一致的界面和流程,管理在公有云、私有云甚至是企业防火墙之后的各类物理和虚拟主机资源。

3、自有主机添加成功后,你就可以在部署应用时选择自己的主机了。应用部署到自有主机后,用户需要自行完成网络端口映射、负载均衡等操作。

七、DaoCloud空间使用小结


1、DaoCloud空间使用起来有些复杂,初始上手时可以选择应用仓库中DaoCloud官方已经定制好的镜像来一键发布,待到自己有了Docker开发基础后,就可以自己尝试构建代码,发布镜像了。
2、总得来说DaoCloud空间的免费配额是基本上够用了,不过部落在测试时发现在运行一些消耗内存的程序时DaoCloud会出现卡顿的现象,安装Wordpress插件时还直接导致了DaoCloud无响应。