Docker是一个开源的引擎,能够轻松的为任何应用建立一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试经过的容器能够批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其余的基础应用平台。容器技术是继大数据和云计算以后又一煊赫一时的技术,并且将来至关一段时间内都会很是流行。
因为本人经常使用Windows电脑就索性就选择win10系统来使用docker,因为docker在win10如下运行须要安装虚拟机,果断的升级到win0专业版,win10所提供的Hyper-V服务(目前仅专业版、企业版支持)完美解决了运行虚拟机各类卡的问题。php
本文主要使用docker-compose编排PHP基本环境:mysql
适用于Windows、Linux、MacOs部署PHP运行环境
├── conf 配置文件目录 │ ├── conf.d Nginx用户站点配置目录 │ ├── nginx.conf Nginx默认配置文件 │ ├── mysql.cnf MySQL用户配置文件 │ ├── php-fpm.conf PHP-FPM配置文件(部分会覆盖php.ini配置) │ └── php.ini PHP默认配置文件 ├── docker-compose.yml PHP最新版docker-compose项目文件 ├── log Nginx日志目录 ├── mysql MySQL数据目录8.0 ├── php PHP7.2 └── www PHP代码目录
使用前须要搭建 git、docker、docker-compose
clone项目nginx
$ git clone https://github.com/LoyaltyLu/docker.git
Linux下须要将当前用户加入docker用户组git
$ sudo gpasswd -a ${USER} docker
启动环境github
$ cd dockerphp $ docker-compose up
容器使用networks方式进行通讯
log文件生成位置可在conf下配置文件中自行更改,更改时须要相对应更改docker-compose对应映射目录,以便对日志数据持久化存储sql
在PHP容器中默认安装composer进入容器后便可使用。docker
容器进入:bash
$ docker exec -it <容器名> /bin/bash
phpMyAdmin 暴露端口:8080
服务器
phpRedisAdmin 暴露端口:8081
composer
环境中安装XDEBUG了调试,需对php.ini进行配置后启用,配置以下:
[XDebug] xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = "172.17.0.1" xdebug.remote_port = 9000 xdebug.remote_log = "/var/log/dnmp/php.xdebug.log"
配置完成后须要重启下PHP容器。