11.5 LAMP

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

11.5 LAMP - 图1

11.5 LAMP - 图2提示

现在也有人用Nginx替换Apache,称为LNMP或LEMP,但并不影响整个框架的选型原则,是彼此十分类似的技术栈。

可以使用自定义Dockerfile或者Compose方式运行LAMP,同时社区也提供了十分成熟的linode/lamp和tutum/lamp镜像。下面介绍后两种方法。

1.使用linode/lamp镜像

首先,执行docker run指令,直接运行镜像,并进入容器内部bash shell:


  1. $ docker run -p 80:80 -t -i linode/lamp /bin/bash
  2. root@e283cc3b2908:/#

在容器内部shell启动apache以及mysql服务:


  1. $ root@e283cc3b2908:/# service apache2 start
  2. * Starting web server apache2
  3. $ root@e283cc3b2908:/# service mysql start
  4. * Starting MySQL database server mysqld [ OK ]
  5. * Checking for tables which need an upgrade, are corrupt or were not closed cleanly.

此时镜像中apache、mysql服务已经启动,可使用docker ps指令查看运行中的容器:


  1. $ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
  2. NAMESe283cc3b2908 linode/lamp "/bin/bash" x ago Up x seconds 0.0.0.0:80->
  3. 80/tcp trusting_mestorf

此时通过浏览器访问本地80端口即可看到默认页面。

2.使用tutum/lamp镜像

首先,执行docker run指令,直接运行镜像:


  1. $ docker run -d -p 80:80 -p 3306:3306 tutum/lamp

容器启动成功后,打开浏览器,访问demo页面:

11.5 LAMP - 图3

图11-6 LAMP容器Demo页面