用Docker搭建PHP+Apache开发环境

Docker是一个使用Go语言开发的基于Apache2.0协议开源的项目。它是一种操作系统层面的虚拟化技术,对进程进行封装隔离。它直接运行于宿主内核之上,而不需要像传统的虚拟机一样抽象出硬件,重新安装操作系统。

安装Docker

ArchLinux官方已经把Docker帮您打包好了:

pacman -S docker

拉取新镜像,创建新容器

操作系统分为内核和用户空间。内核启动后,挂载root文件系统为其提供用户空间支持。而Docker相当于一个root文件系统。Ubuntu:16.04这一镜像就包含了一套Ubuntu16.04最小系统的root文件系统。

而容器则是一个镜像运行时的实体。我可以停止、重启一个容器。

我运行下述命令拉取一个含有PHP7.2和Apache2的新镜像,然后创建并运行一个名为php-dev的容器。

sudo docker run -d -p 8080:80 --name php-dev -v "$PWD":/var/www/html php:7.2-apache

Docker其实首先会检索本地是否存在php:7.2-apache这个镜像。没有的情况下从镜像站上拉取。

参数-p 8080:80把容器的80端口映射到本地的8080端口。-v “$PWD”:/var/www/html 把当前文件夹挂载到容器中的目录/var/www/html下。

容器创建完成后,你的PHP应用就已经部署好了。

安装PHP拓展

这个极简镜像可没有帮你把一些你会用到的PHP拓展装好。不过你可以在容器中很方便地安装PHP拓展:

首先进入容器里的终端

sudo docker exec -ti php-dev bash

安装你需要的PHP拓展(mysqli)

docker-php-ext-install mysqli
docker-php-ext enable mysqli

重启容器

sudo docker restart php-dev

更新时间: