背景
docker容器技术是当今非常热门的容器技术,他利用linux内核的namespace机制对容器进行隔离,使得各个容器能够相互独立运行,彼此互不干扰。同时相比于虚拟机技术,docker的各个容器之间共享同一份linux内核代码,有着更小的系统开支。
开发环境架构设计
1、单容器 or 多容器
对于LNPM开发者来说,一个完整的开发环境,包括linux系统,nginx web服务器,php-fpm守护进程和Mysql数据库。 以往,在使用virtualBox这一类虚拟机技术时,通常的做法是只建一个虚拟机同时运行inux系统,nginx web服务器,php-fpm守护进程和Mysql数据库。但是这与我们实际的生产环境有很大的差别,在高并发的生产环境中,主要以面向服务架构思想为主,系统各个部分被划分为相互独立的低耦合的服务集群,使用负载平衡将短时间的海量请求划分为少量请求分发给集群中的各个节点进行处理。各个服务集群彼此独立运行,互不干扰,任何一个服务宕机并不影响其他服务的运行。 使用一个容器运行一个服务,模拟生产环境中的服务集群,使用多容器更能模拟实际生产环境。现阶段我们需要3个容器。
- 容器1,nginx web服务
- 容器2,php-fpm服务
- 容器3,mysql服务