利用docker搭建web服务环境的方法步骤

 更新时间:2017年09月25日 11:33:22   作者:chenishr  
这篇文章主要给大家介绍了关于利用docker搭建web服务环境的方法步骤,文中通过是示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习下吧。

前言

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

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

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

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 仓库:灵雀云。灵雀云镜像仓库中汇集了大量来自社区的优质作品,让用户组合、复用容器化微服务,轻松搭建新一代云端应用。

搭建 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.d

mysql:
 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 而不会造成混淆。当然,还有其它的 …

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Docker安装Nginx问题及错误分析

    Docker安装Nginx问题及错误分析

    这篇文章主要介绍了Docker安装Nginx的问题及错误分析正确的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Docker Desktop 启用 Kubernetes 失败后处理方案

    Docker Desktop 启用 Kubernetes 失败后处理方案

     在setting -> Kubernetes 中,选中 Enable Kubernetes 后,长时间显示 Starting ...  ,在Images中显示几个自动下载的镜像后,显示 Start Kubernetes failed,这篇文章主要介绍了Docker Desktop启用Kubernetes失败后处理方法,需要的朋友可以参考下
    2023-08-08
  • CentOS7  docker服务无法启动解决方案及实现步骤

    CentOS7 docker服务无法启动解决方案及实现步骤

    这篇文章主要介绍了CentOS7 docker服务无法启动解决方案及实现步骤的相关资料,这里对Docker 服务无法启动做了详细的排查工作及流程,并附解决办法,需要的朋友可以参考下
    2016-12-12
  • docker for windonws之Windows 10 家庭中文版安装clickhouse 22.3版本及配置过程

    docker for windonws之Windows 10 家庭中文版安装cl

    这篇文章主要介绍了docker for windonws之Windows 10 家庭中文版安装clickhouse 22.3版本及配置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • docker搭建mongodb单节点副本集的实现

    docker搭建mongodb单节点副本集的实现

    本文主要介绍了docker搭建mongodb单节点副本集的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 使用Docker部署Spring Boot项目的实现步骤

    使用Docker部署Spring Boot项目的实现步骤

    本文主要介绍了使用Docker部署Spring Boot项目的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • docker搭建minio服务器,解决内网穿透后外网无法访问

    docker搭建minio服务器,解决内网穿透后外网无法访问

    这篇文章主要介绍了docker搭建minio服务器,解决内网穿透后外网无法访问的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Docker基础教程之Dockerfile语法详解

    Docker基础教程之Dockerfile语法详解

    这篇文章主要给大家介绍了关于Docker基础教程之Dockerfile语法的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Docker具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Docker中安装宝塔的详细教程

    Docker中安装宝塔的详细教程

    这篇文章主要介绍了Docker中安装宝塔的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 解决使用Docker Compose管理容器的问题

    解决使用Docker Compose管理容器的问题

    在Docker Compose中,根据一个配置文件,将所有与应用系统相关的应用和对应的容器进行配置,再根据Docker Compose提供的命令进行启动,就可以解决上面说的多容器之间的复杂问题,感兴趣的朋友跟随小编一起看看吧
    2021-09-09

最新评论