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容器。