docker 搭建 web 服务环境

docker容器虽然早就据说过,可是本人还真的没去用过,恰好看到相关的文章,就分享了下,有机会能够实践下......  php

作过开发的人对开发环境的安装、配置应该都不会太陌生,无论你作什么开发,对开发环境都会具备必定的依赖性的。对于 PHP 的 Web 开发来讲,开发环境至少要有一个 Web 服务器(如 Apache、Nginx)、一个数据库服务器(如 MySQL)和一个 PHP 解析器吧,若是你的 PHP 代码使用的一些扩展,那你还须要给你的 PHP 安装上这些扩展,那样你的 PHP 代码才可以顺利地跑起来。对于一个只想静静地敲代码的开发人员来讲,开发环境的安装与配置这种事情,只要经历一次就已经很折腾人了。但是,事情每每不能按人们的意愿进行的,你保不许会重装下系统,也保不许会换一个新的环境。总之就是,你会偶尔须要从新安装配置你的的开发环境!html

你能够回想一下,上一次安装配置你的开发环境花费了多少时间,你所须要的 PHP 扩展是否是到运行时报错了才记起来没安装的呢?还好,自从有了 Docker 以后,妈妈不再用担忧个人开发环境的问题了。使用 Docker ,开发环境只须要安装配置一次,以后搭建相同的开发环境很简单,只须要一条命令便可完成!mysql

这就是本文的目的,介绍 Docker 下安装配置 Web 的服务环境,实现一次安装配置,屡次重用、跨平台重用的功能。nginx

Docker 概述sql

Docker 是什么?能够将 Docker 理解为打包环境的容器,它能够将环境打包成镜像,在须要的时候,再基于该镜像来建立容器,这样所须要的环境就回来了。刚刚提到了 Docker 的两大核心概念,镜像和容器。docker

Docker镜像是为了知足特殊用途而按照Docker的规则制做的应用,有点儿相似于Win-dows里面的安装软件包。容器都是基于镜像而建立的,基于一个镜像能够建立若干个名字不一样但功能相同的容器。镜像是静态的,容器是动态的。数据库

除了镜像和容器以外,还有两个概念须要了解一下的,那就是仓库和 docker-compose。Docker 仓库是存放镜像的地方,咱们能够从 Docker 仓库中拉取镜像到本地,而后再基于镜像建立容器。docker-compose 是管理容器的。Docker 的思想是一个容器只作一件事情,一个开发环境中可能会使用到多个容器,好比 Web 服务环境会使用到 PHP 、Nginx、MySQL 等等。那么一个 Web 服务环境就须要有三个容器,而且这些容器之间是存在依赖关系的,Nginx 依赖 PHP,PHP 依赖 MySQL。有了 docker-compose 就能够很好地管理这些容器了,它能够根据容器之间的依赖关系来决定每一个容器的启动顺序和关闭顺序,能够管理各容器与宿主机器之间的端口映射关系,也能够配置容器与宿主机器之间的数据共享策略等等。服务器

国内的镜像仓库微服务

因为地理位置的缘由,国内访问 Docker 的官方仓库是比较慢的,因此在这里介绍一个国内的 Docker 仓库:灵雀云。灵雀云镜像仓库中聚集了大量来自社区的优质做品,让用户组合、复用容器化微服务,轻松搭建新一代云端应用。code

搭建 Web 服务环境

本文的重点是使用 Docker 搭建一套 Web 服务环境,若是在你的环境中尚未安装 Docker,能够参考这里自行安装。

安装了 Docker 以后,搭建 Web 服务环境就很简单了,只须要一个文件,一条命令便可!

一个文件: docker-compose.yml

nginx:    image: index.alauda.cn/library/nginx    links:
        - phpfpm    ports:
        - "80:80"
        - "443:443"    volumes:
        - /Users/chenishr/www:/usr/share/nginx/html
        - ./nginx.conf:/etc/nginx/nginx.conf
        - ./nginx.d:/etc/nginx/conf.dmysql:    image: index.alauda.cn/library/mysql    environment:        MYSQL_ROOT_PASSWORD: qazasdedc123    ports:
        - "3306:3306"phpfpm:    image: index.alauda.cn/library/php:7.0-fpm    links:
        - mysql    volumes:
        - /Users/chenishr/www:/var/www/html    ports:
        - "9000:9000"


上面的文件内容很简单,它定义了三个容器,分别是 nginx、mysql 和 phpfpm 。每一个容器定义里包含了一些信息,这里简单介绍一下。image:这个字段表示该容器是基于那个镜像来建立的
links:表示在该容器内部须要访问那个其它的容器,该名字在容器内部的表现相似于域名,它会绑 定对应容器的 IP
ports:将容器内部的端口映射到宿主机器中
volumes:配置容器与宿主机器的共享文件或者目录

一条命令

有了上面的 docker-compose.yml 文件以后,只须要一条命令便可启动全部的容器,也就是搭建好了整个 Web 服务环境了!

docker-compose up -d

最后

有了 Docker 以后,搭建环境从未有过如此简单。

本文只是介绍了 Docker 的最基本的应用而已,它还不少用途而不只限于本文。它能够实现多种版本的软件并存同时工做,好比,我能够在一个电脑上同时使用 PHP7 和 PHP5 而不会形成混淆。固然,还有其它的 …

相关文章
相关标签/搜索