11.5 LAMP
LAMP(Linux-Apache-MySQL-PHP)是目前流行的Web工具栈,其中包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言。其组成工具均是成熟的开源软件,被大量网站所采用。和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点;和微软的.NET架构相比,LAMP更具有通用、跨平台、高性能、低价格的优势。因此LAMP无论是在性能、质量还是价格方面都是企业搭建网站的首选平台。

提示
现在也有人用Nginx替换Apache,称为LNMP或LEMP,但并不影响整个框架的选型原则,是彼此十分类似的技术栈。
可以使用自定义Dockerfile或者Compose方式运行LAMP,同时社区也提供了十分成熟的linode/lamp和tutum/lamp镜像。下面介绍后两种方法。
1.使用linode/lamp镜像
首先,执行docker run指令,直接运行镜像,并进入容器内部bash shell:
- $ docker run -p 80:80 -t -i linode/lamp /bin/bash
- root@e283cc3b2908:/#
在容器内部shell启动apache以及mysql服务:
- $ root@e283cc3b2908:/# service apache2 start
- * Starting web server apache2
- $ root@e283cc3b2908:/# service mysql start
- * Starting MySQL database server mysqld [ OK ]
- * Checking for tables which need an upgrade, are corrupt or were not closed cleanly.
此时镜像中apache、mysql服务已经启动,可使用docker ps指令查看运行中的容器:
- $ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
- NAMESe283cc3b2908 linode/lamp "/bin/bash" x ago Up x seconds 0.0.0.0:80->
- 80/tcp trusting_mestorf
此时通过浏览器访问本地80端口即可看到默认页面。
2.使用tutum/lamp镜像
首先,执行docker run指令,直接运行镜像:
- $ docker run -d -p 80:80 -p 3306:3306 tutum/lamp
容器启动成功后,打开浏览器,访问demo页面:

图11-6 LAMP容器Demo页面
