11.6 CMS
内容管理系统(Content Management System,CMS)指的是提供内容编辑服务的平台程序。CMS可以让不懂编程的用户方便又轻松地发布、更改和管理各类数字内容(主要以文本和图像为主)。
下面,笔者将以Wordpress和Ghost两个流行的CMS软件为例,介绍如何制作和使用对应的Docker镜像。
11.6.1 WordPress
WordPress是风靡全球的开源内容管理系统,是博客、企业官网、产品首页等内容相关平台的主流实现方案之一。类似项目还有Drupal、Joomla、Typo3等。

WordPress基于PHP和MySQL,架构设计简单明了,支持主题,插件和各种功能模块。更重要的是,WordPress拥有庞大的社区,在线资源非常丰富,并且在各大网络空间商和云平台中受到广泛的支持。根据2013年8月的统计数据,流量排名前一千万的网站中其使用率高达22%。
1.使用官方镜像
首先,通过Docker Hub下载官方wordpress镜像:
- $ docker pull wordpress
然后,就可以创建并运行一个wordpress容器,并连接到mysql容器:
- $ docker run --name some-wordpress --link some-mysql:mysql -d wordpress
同样,用户可以使用-p参数来进行端口映射:
- $ docker run --name some-wordpress --link some-mysql:mysql -p 8080:80 -d wordpress
启动成功后,可在浏览器中访问http://localhost:8080来打开WordPress页面。
2.使用Compose搭建WordPress应用
可以使用Compose来一键搭建WordPress应用。
首先,新建docker-compose.yml文件:
- wordpress:
- image: wordpress
- links:
- - db:mysql
- ports:
- - 8080:80
- db:
- image: mariadb
- environment:
- MYSQL_ROOT_PASSWORD: example
然后执行:
- $ docker-compose up
提示
如果提示没有docker-compose命令,可以通过pip install docker-compose来在线安装。
待服务启动后,即可打开浏览器访问本地80端口打开WordPress配置界面,如图11-7所示。

图11-7 WordPress容器启动页面
11.6.2 Ghost
Ghost是一个广受欢迎的开源博客平台,使用JavaScript编写,以MIT协议发布。它的设计非常简约,使用起来体验优异,非常适合做内容发布,故而受到很多极客或技术工作者的喜爱。

读者可以直接使用Docker Hub提供的官方Ghost镜像。直接使用docker run指令运行:
- $ docker run --name ghost-container -d ghost
至此已经成功启动了一个Ghost容器,如图11-8所示,内含Ghost实例并监听默认的2368服务端口。当然可以对服务进行端口映射,如下所示:
- $ docker run --name ghost-container-1 -p 8080:2368 -d ghost
- df116b7d570b3456950f4d7c22ff6911124427d16635080817e884922b491a2d

图11-8 Ghost容器启动页面
读者还可以挂载已有的内容到Ghost容器内:
- $ docker run --name some-ghost -v /path/to/ghost/blog:/var/lib/ghost ghost
