下载镜像dockerpullmysql:5.7dockerpullphp:7.2-fpmdockerpullnginxdockerpullredis:3.2setsharedfilehostcreatedirectoryE:\wnmp\mysql57\confE:\wnmp\mysql57\logE:\wnmp\php72\confE:\wnmp\php72\confE:\wnmp\nginx\confE:\wnmp\nginx\confE:\wnmp\wwwvmware如图设置文件共享,在Docker中执行docker-QuickstartTermina机器重启默认安装Mysqldockerrun-d-p3306:3306-eMYSQL_ROOT_PASSWORD=root--namemysql57mysql:5.7复制配置文件PSC:\Windows\system32>dockercpmysql57:/var/log/mysqlE:\wnmp\mysql57\logPSC:\Windows\system32>dockercpmysql57:/etc/mysqlE:\wnmp\mysql57\conf重新安装mysql并指定配置文件PSC:\WINDOWS\system32>dockerstopmysql57mysql57PSC:\WINDOWS\system32>dockerrmmysql57mysql57PSC:\WINDOWS\system32>dockerrun-d-v/wnmp/mysql57/log:/var/log/mysql/-v/wnmp/mysql57/conf:/etc/mysql/-p3306:3306-eMYSQL_ROOT_PASSWORD=root--namemysql57mysql:5.7初始化数据库dockerexec-timysql57/bin/bashmysql_secure_installation#查看Mysql状态root@d7bd0712bcf8:/#mysql-uroot-prootmysql:[警告]在命令行界面上使用密码可能不安全。欢迎使用MySQL监视器。命令以;结尾或\g。您的MySQL连接ID是6Server版本:5.7.28MySQLCommunityServer(GPL)Copyright(c)2000,2019,Oracleand/oritsaffiliates。保留所有权利。Oracle是OracleCorporation和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。键入“帮助;”或'\h'寻求帮助。输入'\c'清除当前输入语句。安装PHPPSC:\WINDOWS\system32>dockerrun-d-v/wnmp/www:/var/www/html-p9000:9000--linkmysql57:mysql--namephp72php:7.2-fpm复制配置文件PSC:\Windows\system32>dockercpphp72:/usr/local/etcE:\wnmp\php72\confPSC:\Windows\system32>dockercpphp72:/usr/local/var/logE:\wnmp\php72\logPSC:\Windows\system32>dockercpphp72:/var/www/htmlE:\wnmp\www重新安装PHP并指定配置文件PSC:\WINDOWS\system32>docker停止php72php72PSC:\WINDOWS\system32>dockerrmphp72php72dockerrun-d-v/wnmp/php72/conf/etc:/usr/local/etc-v/wnmp/php72/log:/usr/local/var/log-v/wnmp/www:/var/www/html-p9000:9000--linkmysql57:mysql--namephp72php:7.2-fpm#查看PHP版本PSC:\Windows\system32>dockerexec-tiphp72/bin/bashroot@742150f14d8a:/var/www/html#php-vPHP7.2.23(cli)(内置:2019年10月5日00:31:47)(NTS)版权所有(c)1997-2018ThePHPGroupZendEnginev3.2.0,Copyright(c)1998-2018ZendTechnologiesNgixn安装PSC:\WINDOWS\system32>dockerrun-d-p80:80--linkphp72:phpfpm--namenginxnginx:latest复制配置文件PSC:\Windows\system32>dockercpnginx:/etc/nginx/E:\wnmp\nginx\confPSC:\Windows\system32>dockercpnginx:/var/log/nginx/E:\wnmp\nginx\log重新安装并指定配置文件PSC:\WINDOWS\system32>dockerstopnginxnginxPSC:\WINDOWS\system32>dockerrmnginxnginxPSC:\WINDOWS\system32>dockerrun-d-p80:80-v/wnmp/www:/var/www/html-v/wnmp/nginx/conf/nginx:/etc/nginx/-v/wnmp/nginx/log:/var/log/nginx/--linkphp72:phpfpm--namenginxnginx#浏览器访问http://192.168.99.100/验证成功redisdockerrun-p6379:6379-dredis:3.2redis-serverPHPextensioninstallredisPSC:\Windows\system32>dockerexec-tiphp72/bin/bashroot@742150f14d8a:/var/www/html#peclinstall-o-fredis#安装完成,加入ini此时docker下的redis配置在E:\wnmp\php72\conf\etc\php\conf.d\docker-php-ext-sodium.ini#重启php配置测试域名#E:\wnmp\nginx\conf在\nginx\conf.d目录下新建test.conf#E:\wnmp\www目录新建test目录目录下新建index.php输出phpinfo;server{listen80;服务器名称test.com;#charsetkoi8-r;access_log/var/log/nginx/host.access.logmain;位置/{root/var/www/html/test;indexindex.phpindex.htmlindex.htm;}#error_page404/404.html;#将服务器错误页面重定向到静态页面/50x.html#error_page500502503504/50x.html;location=/50x.html{root/usr/share/nginx/html;}#将PHP脚本代理到侦听127.0.0.1:80的Apache##location~\.php${#proxy_passhttp://127.0.0.1;#}#将PHP脚本传递给侦听127.0.0.1:9000的FastCGI服务器#location~\.php${root/var/www/html/test;fastcgi_pass192.168.99.100:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;包括fastcgi_params;}#拒绝访问to.htaccess文件,如果Apache的文档根#与nginx的一个#位置一致~/\.ht{denyall;}}#nginxreloadconfigurationorrestart#localhost解析域名test.com访问显示上面phpinfo正常,所有安装配置测试。当然最后我们还需要将这些docker容器添加到自动启动docker容器更新--restart=alwaysphp72docker容器更新--restart=alwaysmysql57docker容器更新--restart=alwaysnginxdocker容器更新--restart=alwaysredis
