Docker 搭建多容器组合服务 (Nginx + PHP)
-
首先要确保本地 docker 环境已经安装成功
Docker 安装 Nginx
docker images (查看本地 Nginx 镜像是否安装成功)
Docker 安装 PHP
docker images (查看本地 PHP 镜像是否安装成功)
-
准备好一个本地目录用于容器挂载 (例如 E:\WWW 目录)
1.运行 PHP 命令 “docker run –name myPHP -p 9000:9000 -v E:\WWW:/var/www/html -d PHP:7.4-fpm” (注意: myPHP 容器的 /var/www/html 目录 挂载了一个本地 E:\WWW 目录)
2.运行 Nginx 命令 “docker run –name myNginx -p 80:80 -v E:\WWW:/usr/share/Nginx/html –link=myPHP:PHPfpm -d Nginx” (注意:myNginx 容器的 /usr/share/Nginx/html 目录 挂载了一个本地 E:\WWW 目录,–link=” 这里是要连接的容器名,如命令 myPHP “:” 这里是别名”)
server { listen 80; server_name localhost; location / { root /usr/share/Nginx/html; index index.html index.htm index.PHP; } location ~ \.PHP$ { # 注意 这里是 PHP 的挂载目录哦 root /var/www/html; fastcgi_pass PHPfpm:9000; fastcgi_index index.PHP; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
以上就是 default.conf 的配置内容 需要注意 fastcgi_pass,fastcgi_param,root 这几项的配置
4.复制本地 “default.conf” 配置文件到 “myNginx” 容器里面
命令 “docker cp E:\WWW\default.conf 1501fae3ec6f:/etc/Nginx/conf.d” (E:\WWW\default.conf 这里是本地文件路径; 1501fae3ec6f 代表 myNginx 容器 id ;/etc/Nginx/conf.d 代表 myNginx 容器里的目录)
5.“docker exec -it myNginx bash” 命令 进入 myNginx 容器里面 执行 “ service Nginx reload ” 加载 Nginx 配置文件
6.访问项目 index.PHP 成功打印出 PHPinfo 信息