使用 Docker 搭建开发环境

做了一次分享,主题《使用 Docker 搭建开发环境》,简单介绍了一下 Docker 的概念,演示了使用 Docker-compose 构建全套 PHP 环境。

主要内容

  • 镜像、容器、仓库概念
  • 容器与虚拟机的区别
  • 使⽤ Docker 搭建 PHP 环境
  • 介绍 docker-compose

什么是 Docker?

Docker是⼀个基于 Linux 内核的 cgroup,namespace,以及AUFS 类的 Union FS 等技术,对进程进⾏封装隔离,属于操作系统层⾯的虚拟化技术。

最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转⽽使⽤⾃⾏开发的 libcontainer,从 1.11 开始,则进⼀步演进为使⽤ runC 和 containerd。

Docker 在容器的基础上,进⾏了进⼀步的封装,从⽂件系统、⽹络互联到进程隔离等等,极⼤的简化了容器的创建和维护。使得 Docker 技术⽐虚拟机技术更为轻便、快捷。

Docker应⽤场景

Docker 通常⽤于如下场景:

  • web应⽤的⾃动化打包和发布;
  • ⾃动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其他的后台应⽤;
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建⾃⼰的PaaS环境。

更多场景和优势:

• 加速本地开发和构建流程,使其更加⾼效、更加轻量化
• 能够让独⽴服务或应⽤程序在不同的环境中,得到相同的运⾏结果
• ⽤ Docker 创建隔离的环境来进⾏测试
• Docker 可以让开发者先在本机构建⼀个复杂的程序或架构进⾏测试,⽽不是⼀开始就在⽣产环境部署、测试
• 构建⼀个多⽤户的平台即服务(PaaS)基础设施
• 为开发、测试提供⼀个轻量级的独⽴沙盒环境

Docker架构

Docker客户端和服务器

  • Docker 是⼀个 C/S 架构的程序。Docker 客户端向服务器或守护进程发出请求,服务器或守护进程将完成所有⼯作并返回结果
  • Docker 提供了⼀个命令⾏⼯具以及⼀整套 RESTful API
  • 可以在同⼀台宿主机上运⾏ Docker 守护进程,也可以从⼀个本地客户端运⾏另⼀台宿主机上远程 Docker 守护进程

Docker镜像、容器、仓库

  • 镜像是⼀个特殊的⽂件系统,提供容器运⾏所需的程序、⽂件、资源、配置,以及为运⾏时准备的配置参数(镜像不是Dockerfile⽂件)
  • 容器是是镜像的⼀个实例,是⼀个动态的概念,是运⾏状态下的镜像,它可以被创建、启动、停⽌、删除。(进程隔离)
  • 仓库是存放镜像的地⽅,如官⽅ Hub 仓库,上⾯有成千上万的镜像可以直接使⽤。

Docker-compose介绍

Docker-compose是 Docker 官⽅编排(Orchestration)项⽬之⼀,负责快速的部署分布式应⽤。

  • Docker Compose是⼀个 Python 写的⽤来定义和运⾏复杂应⽤的Docker⼯具。
  • 使⽤Compose可以定义和运⾏多个 Docker 容器的应⽤,使⽤⼀条命令来启动所需应⽤,完成⼀切准备⼯作

使用 laradoc 搭建全套PHP环境步骤

仅需要三个步骤就完成了 PHP 全套环境的搭建,每次开机启动 PHP 环境也只需⼀个命令:

  • 克隆 laradock
  • 创建环境变量⽂件
  • 使⽤ docker-compose 启动所需服务

PPT 下载

点击下载

打赏