Docker 搭建多容器組合服務 (nginx + PHP)

fengyaoyao發表於2020-06-16

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 協議》,轉載必須註明作者和本文連結

相關文章