用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