Docker 搭建多容器组合服务 (nginx + PHP)

Docker 搭建多容器组合服务(nginx + php)

  • 首先要确保本地docker环境已经安装成功
    Docker NGINX + PHP

  • Docker 安装 Nginx

    1. docker pull nginx (拉取最新 nginx 镜像)
      Docker NGINX + PHP
    2. docker images (查看本地 nginx 镜像是否安装成功)
      Docker 搭建 多容器组合服务(nginx + php)
  • Docker 安装 PHP

    1. docker pull php:7.4-fpm (拉取指定版本的 php )
      Docker 搭建 多容器组合服务(nginx + php)
    2. docker images (查看本地 php 镜像是否安装成功)
      Docker 搭建 多容器组合服务(nginx + php)
  • 准备好一个本地目录用于容器挂载 (例如 E:\WWW 目录)

  • 使用 docker 运行 php 、nginx 容器

    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 目录)
      Docker 搭建 多容器组合服务 (nginx + PHP)

    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 “:”这里是别名”)
      Docker 搭建 多容器组合服务 (nginx + PHP)

    3. 配置 default.conf 复制到 mynginx 容器里 /etc/nginx/conf.d 目录下

      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 容器里的目录)
      Docker 搭建 多容器组合服务 (nginx + PHP)

    5. “ docker exec -it mynginx bash ” 命令 进入 mynginx 容器里面 执行 “ service nginx reload ” 加载 nginx 配置文件

    6. 访问项目index.php 成功打印出 phpinfo 信息
      Docker 搭建 多容器组合服务 (nginx + PHP)

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

这篇文章可以, 学到不少东西

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!