win7下安装docker及搭建PHP+Nginx环境

1.下载

首先来到官网下载安装包

https://docs.docker.com/toolbox/overview/
win7下安装docker及搭建PHP+Nginx环境

下载后,得到如下.exe文件
win7下安装docker及搭建PHP+Nginx环境
​​

2.安装

双击DockerToolbox.exe,点击Next,选择安装路径,开始安装。
win7下安装docker及搭建PHP+Nginx环境

下面的组件建议全部勾选,如果已经安装过VirtualBox和Git的可以不勾选。

​​win7下安装docker及搭建PHP+Nginx环境

Next下一步,注意添加到环境变量,如果没有选,安装后要把安装路径添加到环境变量。
win7下安装docker及搭建PHP+Nginx环境
​​

Next下一步,一路默认,直到安装完毕。
win7下安装docker及搭建PHP+Nginx环境

完成安装后可在桌面看到如下3个图标:

win7下安装docker及搭建PHP+Nginx环境

同时,在安装目录下会有一个boot2docker.iso文件,后面会用到
win7下安装docker及搭建PHP+Nginx环境
​​

3.使用

双击Docker Quickstart Terminal,等待docker启动,第一次运行Docker Quickstart Terminal时会进行Docker环境的初始化,会在VirtualBox中自动创建名字为【default】的linux虚拟机,再此过程中会用到boot2docker.iso镜像文件。默认情况下,启动程序会从GitHub上下载此文件的最新版,但由于文件相对较大且速度不给力,多数情况下会下载失败,造成Docker环境无法启动,

解决方法:

其实DockerToolbox安装文件自带了boot2docker.iso镜像文件,位于安装目录下(如E:\install\Docker Toolbox) ,将此文件拷至C:\Users\Administrator.docker\machine\cache目录下,然后重新启动,便可初始化成功。如下图:
win7下安装docker及搭建PHP+Nginx环境
​​

界面中出现的IP【192.168.99.100】是VirtualBox中名字为【default】虚拟机的ip地址,这个在后面会用到。

双击Oracle VM VirtualBox 打开虚拟机,挂载共享文件夹,将本地项目目录挂载到虚拟机,方便在虚拟机中访问项目:
win7下安装docker及搭建PHP+Nginx环境

设置过共享文件夹后,进入docker默认的虚拟主机:docker-machine ssh default,也就是终端显示[email protected]:~$,输入命令:mount,查看虚拟主机中的共享文件夹是否已存在,输入命令:cd /WWW 可进入共享文件夹看到映射的本地项目。

也可以使用xshell连接登录虚拟机:
win7下安装docker及搭建PHP+Nginx环境
​​

默认的用户名是:docker,密码是:tcuser,填写完成后,登录。登录成功界面如下图:
win7下安装docker及搭建PHP+Nginx环境
​​

4.设置完共享文件夹后,开始安装镜像

通过docker search php查找PHP镜像,通过docker pull 镜像名/镜像ID 拉取镜像,我选择的是PHP7.1。进入docker主机,拉取PHP镜像,如下:
win7下安装docker及搭建PHP+Nginx环境
​​

拉取Nginx镜像:docker pull nginx,不指定版本号则拉取最新的tag。

查看安装的镜像:docker images
win7下安装docker及搭建PHP+Nginx环境

5、安装了镜像之后,开始创建容器,创建容器时会设置映射文件夹,这时会用到上面设置的共享文件夹。

创建PHP容器:docker run -d -p 9000:9000 -v /WWW:/data/www --name php71 php:7.1-fpm
win7下安装docker及搭建PHP+Nginx环境

以上命令中:

-d表示后台运行

-p表示将宿主机端口映射到本机端口

-v表示目录挂载 将宿主机目录挂载到容器目录【冒号前面是宿主机目录,冒号后是容器内的目录】

–name 指定容器名称

后面指定创建容器使用的镜像。

容器状态变更:

启动容器:docker start 容器名/容器ID

停止容器:docker stop 容器名/容器ID

重启容器:docker restart 容器名/容器ID

删除容器:docker rm 容器名/容器ID

删除镜像:docker rmi 镜像名/镜像id

创建Nginx容器

docker run -d -p 8080:80 -v /WWW:/data/www --name mynginx nginx:latest

挂载目录必须与PHP挂载目录一致。

安装完了之后,查看创建的容器:

docker ps -a
win7下安装docker及搭建PHP+Nginx环境
​​
status 状态为up 表示已启动,exited表示退出状态。
进入容器,查看共享文件夹映射到容器的目录:
win7下安装docker及搭建PHP+Nginx环境

修改nginx的相关配置

在容器中是没有vim命令的,所以不能在容器中直接修改配置文件。所以我们必须通过变通的方式去解决这个问题,否则只能在每个容器中安装vim。

首先登录到对应的容器中,查看配置信息路径,这在之后修改时会用到。

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

-i : --interactive,交互模式。

-t : --tty,开启一个伪终端。

/bin/bash : 必须写,否则会报错。这是开始伪终端时,进入bash界面,也就是命令行界面。
win7下安装docker及搭建PHP+Nginx环境
​​

nginx的配置文件在/etc/nginx/conf.d/default.conf,退出容器Ctrl+Shift+p+q,返回docker。

将容器配置文件复制到本地映射目录下,修改本地的default.conf文件,改过之后再复制到容器内:

​docker cp mynginx:/etc/nginx/conf.d/default.conf /WWW/default.conf​

docker cp /WWW/default.conf​ mynginx:/etc/nginx/conf.d/default.conf
win7下安装docker及搭建PHP+Nginx环境

命令中要指定将文件复制到哪个容器(此处是mynginx容器)。

进入myginx容器,重启Nginx服务:

docker exec -it nginx bash

service nginx reload
win7下安装docker及搭建PHP+Nginx环境
​​

重启成功后,在映射的本地目录下创建index.php文件,输出“Hello World”,保存文件。在浏览器中输入http://192.168.99.100:8080/index.php
win7下安装docker及搭建PHP+Nginx环境
​​win7下安装docker及搭建PHP+Nginx环境

运行成功!

然后,又修改了本地index.php文件,进入容器映射的目录,看到容器中的这个文件同步修改了,所以容器目录和本地目录映射后,只修改本地文件就可以同步到容器中了,无需再进行复制替换操作。

接下来,部署一个项目:

同样修改从容器复制下来的default.conf文件,添加一个server配置,如下:
win7下安装docker及搭建PHP+Nginx环境

把这个文件再次拷贝到容器中:docker cp /WWW/default.conf mynginx:/etc/nginx/conf.d/default.conf

进入容器:docker exec -it mynginx /bin/bash

重启nginx:service nginx reload

在本地hosts文件中添加:192.168.99.100 dc.rest.bxd

在浏览器中输入:http://dc.rest.bxd:8080 访问项目
win7下安装docker及搭建PHP+Nginx环境

Redis、mysql等可根据需求自行安装。
————————————————
版权声明:本文为CSDN博主「卿柠」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yuao_708905482/article/details/89319683