LAMP
LAMP(Linux-Apache-MySQL-PHP)是目前流行的Web工具栈,其中包括:Linux操作系统,Apache网络服务器,MySQL数据库,Per,PHP或者Python编程语言。LAMP具有Web资源丰富、轻量、快速开发等特点;和微软的.NET架构相比,LAMP更具有通用、跨平台、高性能、低价格的优势。
现在也有用Nginx替换Apache,称为LNMP或LEMP。
1 使用官方镜像
用户可以使用自定义Dockerfile或者Compose方式运行LAMP,同时社区也提供了十分成熟的linode/lamp 和 tutum/lamp 镜像。
1.1 使用linode/lamp 镜像
首先,执行docker run 指令,直接运行镜像,并进入容器内部bash shell:
$ docker run -it --name mylamp -p 80:80 linode/lamp /bin/bash
# 在容器内部启动Apache和MySQL服务
$ root@1321cdf3b2980:/# service apache2 start
$ root@1321cdf3b2980:/# service mysql start
1.2 使用tutum/lamp 镜像
首先,执行docker run 指令,直接运行镜像:
$ docker run -d --name mylamp-tutum -p 80:80 -p 3306:3306 tutum/lamp
# 在容器内部启动Apache和MySQL服务
$ root@1321cdf3b2980:/# service apache2 start
$ root@1321cdf3b2980:/# service mysql start
2 部署自定义PHP应用
默认的容器启动了一个helloword 应用。可以基于此镜像,编辑Dockerfile 来创建自定义LAMP应用镜像。
在宿主主机上创建新的工作目录lamp:
$ mkdir lamp
$ cd lamp
$ touch Dockerfile
Dockerfile 文件内容为:
FROM tutum/lamp:latest
# 替换https://github.com/username/customapp.git 地址为自己的项目地址
RUN rm -rf /app && git clone https://github.com/username/customapp.git /app
EXPOSE 80 3306
CMD ["/run.sh"]
创建镜像,命名为my-lamp-app:
$ docker build -t my-lamp-app .
$ docker run -d -p 8080:80 -p 3306:3306 my-lamp-app
$ curl http://127.0.0.1:8080
3 相关资源
LAMP相关资源如下
tutum LAMP镜像:https://hub.docker.com/r/tutum/lamp
linode LAMP镜像:https://hub.docker.com/r/linode/lamp