1.下载Docker for Windows10
首先这是为已经安装了Docker Desktop准备的,下载地址点击这里,欢迎大家提意见,这里使用的是官方提供的镜像。
Docker启动之后右下角有个Docker图标 -> 右键图标 -> 选择settings打开如下界面
选择选择Docker Engine,在下面的输入框中找到registry-mirrors属性,修改国内镜像源。(我用的阿里云Docker国内镜像)
最后点击 Apply 等待重启。
2.使用搜索框cmd,以管理员方式运行。
尽量使用管理员方式,在搭建过程中涉及到从容器中拷贝文件到宿主机,需要权限,并且以后关于docker中的命令操作都会在cmd中完成。(以下不再提示)
1.安装mysql
docker pull mysql:5.7
docker images -a
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7 ## 设置MySQL密码
docker ps -a
2.安装php-fpm
php-fpm(进入容器之后配置文件一般在/usr/local/etc)
docker pull php:7.4-fpm
docker run -d -p 9000:9000 -v D:\docker_server/www:/www --name phpfpm php:7.4-fpm
进入php-fpm容器:docker exec -it phpfpm /bin/bash
安装mysqli跟pdo拓展:cd /usr/local/bin && ./docker-php-ext-install pdo_mysql && ./docker-php-ext-install mysqli
退出容器:exit
重启phpfpm:docker restart phpfpm
3.安装nignx
docker pull nginx:1.15.5
docker run --name=nginx -p 80:80 -d nginx:1.15.5
把docker上的配置文件拷贝下来(挂载配置文件,就是把装有docker宿主机上面的nginx.conf配置文件映射到启动的nginx容器里面,这需要你首先准备好nginx.con配置文件)
docker cp nginx容器id:/etc/nginx/nginx.conf D:\docker_server\nginx\nginx.conf
docker cp nginx容器id:/etc/nginx/conf.d/default.conf D:\docker_server\nginx\default.conf
删除容器:docker rm -f nginx
重新创建启动容器,映射文件
docker run --name=nginx -p 80:80 ^
--link phpfpm:phpfpm --link mysql:mysql ^
-v D:\docker_server\nginx/log:/var/log/nginx ^
-v D:\docker_server\www:/usr/share/nginx/html ^
-v D:\docker_server\nginx\nginx.conf:/etc/nginx/nginx.conf ^
-v D:\docker_server\nginx\default.conf:/etc/nginx/conf.d/default.conf ^
-d nginx:1.15.5
4.nginx配置
不管是nginx容器还是php容器 都要用 docker -v 把宿主机的php文件映射到容器内,路径保持一致,进入nginx之后,fastcgi_pass 要写容器名:端口(端口可以在php容器里边修改php-fpm的配置文件来更改),fastcgi_param 后边要注意修改一下自己所对应的目录
【注释】
第二个红线的/wwww的路径是php容器的路径,也就是说,不管是nginx容器 还是php容器 都要通过docker -v 来把项目映射到这两个容器里边,而fastcgi_param这个是php程序去解析php文件的路径,所以,后边参数路径为 php容器内的的路径