Docker 搭建多容器組合服務(nginx + php)
首先要確保本地docker環境已經安裝成功
Docker 安裝 Nginx
- docker pull nginx (拉取最新 nginx 映象)
- docker images (檢視本地 nginx 映象是否安裝成功)
- docker pull nginx (拉取最新 nginx 映象)
Docker 安裝 PHP
- docker pull php:7.4-fpm (拉取指定版本的 php )
- docker images (檢視本地 php 映象是否安裝成功)
- docker pull php:7.4-fpm (拉取指定版本的 php )
準備好一個本地目錄用於容器掛載 (例如 E:\WWW 目錄)
使用 docker 執行 php 、nginx 容器
執行 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 目錄)
執行 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 “:”這裡是別名”)
配置 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 這幾項的配置
複製本地 “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 exec -it mynginx bash ” 命令 進入 mynginx 容器裡面 執行 “ service nginx reload ” 載入 nginx 配置檔案
訪問專案index.php 成功列印出 phpinfo 資訊
本作品採用《CC 協議》,轉載必須註明作者和本文連結