Window10安装Docker及搭建PHP开发环境的一些坑

1. 开启Windows10中的Hyper-V 

打开控制面板 - 程序和功能 - 启用或关闭Windows功能,勾选Hyper-V,然后点击确定即可,如图:

Window10安装Docker及搭建PHP开发环境的一些坑_第1张图片

 2. 修改虚拟硬盘的位置

     第一步:启用后,使用搜索框搜索Hyper-V管理器,打开

Window10安装Docker及搭建PHP开发环境的一些坑_第2张图片

       第二步:选择 Hyper-v设置 

Window10安装Docker及搭建PHP开发环境的一些坑_第3张图片

     第三步:更改虚拟硬盘的的位置

Window10安装Docker及搭建PHP开发环境的一些坑_第4张图片

3. 下载Docker for Windows10 

        下载地址:https://download.docker.com/win/stable/Docker for Windows Installer.exe

         双击等待安装完成即可

         Docker启动之后右下角有个Docker图标 -> 右键图标 -> 选择settings打开如下界面

Window10安装Docker及搭建PHP开发环境的一些坑_第5张图片

        安装完成,docker已经在启动了

Window10安装Docker及搭建PHP开发环境的一些坑_第6张图片

 选择选择Proxies,在下面的输入框输入国内镜像源。(我用的阿里镜像加速器)

Window10安装Docker及搭建PHP开发环境的一些坑_第7张图片

关于如何获取镜像加速地址:https://blog.csdn.net/caofengtao1314/article/details/104510838?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-1.base&spm=1001.2101.3001.4242 

 4. 使用搜索框,找到Windows PowerShell,以管理员方式运行。

Window10安装Docker及搭建PHP开发环境的一些坑_第8张图片

     使用 docker version 查看docker版本信息

Window10安装Docker及搭建PHP开发环境的一些坑_第9张图片

 5. 在win10里面创建目录来存放MySql/PHP/Nginx的配置文件及日志文件和存放项目的www文件(后面将会操作映射到本机的目录)

D:\docker\wnmp\mysql-conf
D:\docker\wnmp\mysql-log
D:\docker\wnmp\nginx-conf
D:\docker\wnmp\nginx-log
D:\docker\wnmp\php71-conf
D:\docker\wnmp\php71-log
D:\docker\wnmp\www\index.php    index.php 可以写入 phpinfo();

 

6. 下载mysql5.7镜像 

 第一步: 输入命令: docker pull mysql:5.7 并且等待下载完成。(使用镜像后不一会就下载完了)

Window10安装Docker及搭建PHP开发环境的一些坑_第10张图片
 第二步: 下载完成之后,先简单创建一个mysql容器,因为在上一步中创建的MySql/PHP/Nginx等目录中还没有对应的配置及日志文件。需要我们从容器中先拷贝到宿主机目录里。
 第三步: 先创建一个MySql的简单容器,输入命令:
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.6
(具体命令解释,参考docker官方文档)

Window10安装Docker及搭建PHP开发环境的一些坑_第11张图片
第四部: 创建成功之后,进入容器中,docker exec -it mysql /bin/bash (这命令中的mysql是上一句命令中对mysql:5.7进行的重命名)找到对应的配置文件位置和日志文件位置。

 配置文件:

Window10安装Docker及搭建PHP开发环境的一些坑_第12张图片

 日志文件:

Window10安装Docker及搭建PHP开发环境的一些坑_第13张图片

 将对应的日志文件及配置文件复制出来

命令1:docker cp mysql:/var/log/mysql D:\wnmp\mysql-log
命令2:docker cp mysql:/etc/mysql D:\wnmp\mysql-conf

因为复制的是整个目录,所以复制出来的地址有点小问题,需要在Win10中调整下。调整如下:

 将mysql-log中的mysql目录里的所有文件复制到mysql-log目录中。也就是所将日志文件的目录深度退一层。然后,将mysql-log中的mysql目录删除,已经没用了。

 Window10安装Docker及搭建PHP开发环境的一些坑_第14张图片Window10安装Docker及搭建PHP开发环境的一些坑_第15张图片

  mysql的配置文件的复制,也同理。全部复制完成之后。我们就需要删除掉这个mysql容器。重新创建带有文件映射的mysql容器。(这里可以使用容器ID,我这里为了方便阅读,换成对应的重命名,也是可以的运行的。)

 命令1:docker stop mysql  #暂停容器
命令2:docker rm mysql   #删除容器

 重新创建带有文件映射的mysql容器:(注意:地址映射的时候docker会要求输入宿主机密码,最好设置一个)
命令:docker run -d -v D:\docker\wnmp\mysql-log:/var/log/mysql/ -v D:\docker\wnmp\mysql-conf:/etc/mysql/ -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7

 注意:如果遇到此问题:C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: D: drive is not shared. Please share it in Docker for Windows Settings.

在docker桌面控制器打开对应的硬盘就行,然后输入电脑开机密码

Window10安装Docker及搭建PHP开发环境的一些坑_第16张图片

 创建完成之后,使用命令进入容器,docker exec -ti mysql /bin/bash

这里介绍一个mysql初始化命令,mysql_secure_installation,具体内容参考:
https://blog.csdn.net/u013931660/article/details/79443061

mysql容器配置完成,用Navicat验证下是否可以连接。(这里的主机地址要使用宿主机的IP地址,使用ipconfig命令,IPv4后面的就是宿主机的IP)

Window10安装Docker及搭建PHP开发环境的一些坑_第17张图片

Window10安装Docker及搭建PHP开发环境的一些坑_第18张图片

命令方式登录mysql:

Window10安装Docker及搭建PHP开发环境的一些坑_第19张图片 

以上mysql镜像及容器的配置全部完成。

7. 下载PHP7.1镜像

--- a. 命令:docker pull php:7.1

Window10安装Docker及搭建PHP开发环境的一些坑_第20张图片
先创建一个MySql的简单容器,输入命令:docker run -d -p 9000:9000 --link mysql:mysql --name php71 php:7.1-fpm
··· b. 因为同样要复制PHP的配置文件及日志文件,所以操作方法与mysql相同。复制出来的文件目录深度同样要退一层。
··· c. PHP的配置文件及日志文件目录地址:
配置文件:/usr/local/etc  ,docker cp php71:/usr/local/etc D:\docker\wnmp\php71-conf
日志文件:/usr/local/var/log,docker cp php71:/usr/local/var/log D:\docker\wnmp\php71-log
项目文件:/var/www/html,docker cp php71:/var/www/html D:\docker\wnmp\www
··· d. 因为PHP有可能要多版本切换,所以这里的PHP容器重命名最好带有版本标识。
全命令:docker run -d -v D:\docker\wnmp\php71-conf:/usr/local/etc -v D:\docker\wnmp\php71-log:/usr/local/var/log -v D:\docker\wnmp\www:/var/www/html -p 9000:9000 --link mysql:mysql --name php71 php:7.1-fpm


··· e. 容器创建完成之后,进入容器,docker exec -ti php71 /bin/bash (如果需要VIM,安装方法同mysql)


··· f. 安装PHP的扩展
命令1:docker-php-ext-install pdo_mysql
命令2:docker-php-ext-install mysqli
··· g:查看扩展是否已经安装。php -m

Window10安装Docker及搭建PHP开发环境的一些坑_第21张图片安装php的步骤有点简写了,具体参照安装myql的步骤,一样的原理。

8. 下载Nginx1.10.3 

 ·· a. 命令:docker pull nginx:1.10.3

Window10安装Docker及搭建PHP开发环境的一些坑_第22张图片

先创建一个nginx的简单容器,输入命令:docker run -d -p 80:80  --link php71:phpfpm --name nginx nginx:1.10.3


··· b. 因为同样要复制Nginx的配置文件,所以操作方法与mysql相同。复制出来的文件目录深度要退一层。(这里不建议复制nginx的日志文件,因为即使复制了最后在映射完成之后无法启动nginx容器,最好自己创建一份。)
配置文件:/etc/nginx/,docker cp nginx:/etc/nginx/ D:\docker\wnmp\nginx-conf
项目文件:/var/www/html,docker cp nginx:/var/www/html D:\docker\wnmp\www

 ··· c. Nginx容器全命令:
docker run -d -p 80:80 -v D:\docker\wnmp\www:/var/www/html -v D:\docker\wnmp\nginx-conf:/etc/nginx/ -v D:\docker\wnmp\nginx-log:/var/log/nginx/ --link php71:phpfpm --name nginx nginx:1.10.3

 进入容器,docker exec -ti nginx /bin/bash

 编辑配置文件,(这里就体现出文件映射的好处了,因为不需要进入容器修改配置文件,直接可在windows中操作。)

 Window10安装Docker及搭建PHP开发环境的一些坑_第23张图片

 Window10安装Docker及搭建PHP开发环境的一些坑_第24张图片

fastcgi_pass 这里面 ip地址是宿主机的IP地址,同mysql,端口号这里是9000.
修改配置文件后,重载一下,这里有两种方法实现重载, 

 第一种:进入容器中,执行,/etc/init.d/nginx reload

 

 第二种:在容器外中直接重启nginx容器,docker restart nginx

在windows浏览器中输入localhost,或者127.0.0.1,查看phpinfo的打印结果。

在这里插入图片描述

你可能感兴趣的:(其他,运维,docker)