1、内容概要
- 为什么要使用Docker?
- 准备工作
- 使用Docker构建PHP环境的过程
- 预览
- 编写Dockerfile文件
- PHP
- Nginx
- MySQL
- Redis
- 编写配置文件
- 编写docker-compose.yml
- 使用方式
- 使用搭建好的环境
- 使用Composer
- 注意事项
2、为什么要使用Docker?
是否有这样的场景,你搞了一个项目,在本地开发时需要搭建环境,放到线上时也需要搭建环境,到公司想暗戳戳玩一下要搭建环境,不搭还不行,因为你的环境依赖还挺多。这个时候如果有了Docker,只需要在机器上装个Docker,放上写好的Dickerfile,一行命令就自动完成这个事,方便又高效,岂不是很爽?
3、准备工作
现在不管是windows,mac还是linux,docker都可以很好支持,包括Windows系统,在win10系统下Docker for Windows 其实还是挺不错的。
通过Docker命令行,我们可以做很多事情,拉取镜像,运行容器,容器内执行命令等,但是现在,我们要用更加简单粗暴的方式,编写好dockerfiles文件,然后通过docker-compose管理好这些文件,简化操作流程。
什么是Dockerfile?
Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于拉取的基础镜像并最终创建一个新的镜像,通过Dockerfile我们可以创建一个你需要的镜像,里面是包含了你要安装的软件,相当于是提前定制好要安装的拓展,执行的命令等,然后一键执行,极大地简化操作流程。
按照本文来搭建环境,你需要:
首先了解一下Docker以及Docker的一些基本操作,还有docker-compose是什么。
然后需要安装 Docker 和 docker-compose,我将使用 docker-compose 来管理我的 dockerfiles。
注意,编写 dockerfile 是活的,不是死的,每个人写出来的 dockerfile 都会不一样,取决于你的需求。
Docker的官方文档非常清楚,虽然是英文,但是基本上什么都有:https://docs.docker.com/
4、使用Docker构建PHP环境的过程
4.1预览
首先,我们来看一下,我创建的这个dockerfile项目(项目名称MyFirstPHP),我大概分成了下面的目录
在这个项目里,我用到PHP,MySQL,Nginx,Redis;以及Composer,Phalcon拓展等。
总的来说,我们做这件事有三个流程:编写好各个软件的dockerfile;编写好配置文件;通过docker-compose处理所有的dockerfile,包括将配置配置文件扔进去 dockerfile 文件将构建的镜像中。
4.2编写Dockerfile文件
4.2.1 PHP
以下是PHP的Dockerfile
FROM php:7.2-fpm
MAINTAINER goozp "[email protected]"
# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ >