基于Docker的Web应用部署与实现
2021-09-19孙雅妮
孙雅妮
(四川信息职业技术学院,四川 广元 628040)
1 概述
当前的Web应用多采用LAMP架构,LAMP架构通常包括Linux操作系统、Apache、MariaDB和PHP。服务器处理一次Web页面请求的过程是由Apache接收请求,通过CGI接口访问PHP的应用程序,然后由PHP应用程序调用PHP解释器执行PHP代码,接下来由PHP程序访问调用数据库,最后将结果反馈给Web页面。
实现LAMP架构的传统做法是将服务器资源进行虚拟化,基于虚拟化资源池创建虚拟机,在虚拟机上部署Web和数据库服务。传统的虚拟机技术与Docker相比,前者明显占用了较多的系统资源,而Docker在启动速度、信息隔离和资源消耗方面的优势十分明显[1-2]。本文提出一种基于容器实现LAMP,采用在Docker中基于LAMP架构部署Web应用,提升Web应用的部署效率,降低物理资源消耗。
2 Docker简介
根据官方定义,Docker是以Docker容器为资源分割和调度的基本单位,封装整个软件运行环境,是为开发者和系统管理员设计的,是一个用于构建、发布和运行分布式应用的平台[3]。它是一个开源的容器引擎,可以方便地对容器进行管理,或者说Docker是一个开源的轻量级虚拟化容器管理引擎。它由Docker Inc.公司(前dotC1oud公司,PaaS市场中的老牌提供商)的团队编写、发行,并将其源代码放在GitHub上。Docker基于Go语言开发并遵从Apache2.0协议[4]。
Docker提出的“Build,Ship and Run Any APP,Anywhere”就是Docker最具竞争力的优势。它通过将运行环境和应用程序打包到一起,解决部署应用对环境依赖的问题,真正做到快平台的分发和使用[5]。Docker是容器化技术的一种实现,它与传统的虚拟机架构有所不同。两种架构对比如图1所示。

图1 容器和传统虚拟机架构对比……p>
