docker pull nginx:1.17.2
docker run -it -d --name mynginx -p 8080:80 -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf(這個鏡像內的路徑的nginx.conf不能寫錯了) -v /home/nginx/www:/home/nginx/www(只需要映射存在的路徑即可,起碼在本地操作方便) --privileged --net=host(網絡映射模式) nginx:1.17.2
把nginx的配置文件和web路徑與本地映射一下,方便修改配置和存放項目。
本地nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8080;
server_name localhost;
# Vue路由模式爲history需添加的配置
location / {
root /home/nginx/www;
index index.html;
}
# 獲取真實IP以及Websocket需添加的配置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 客戶端Body大小限制(文件上傳大小限制配置)
client_max_body_size 5m;
error_page 500 502 503 504 404 /50x.html;
location = /50x.html {
root html;
}
#php環境安裝完畢之後開啓這段配置
#location ~ \.php$ {
# fastcgi_pass 172.18.0.2:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
# include fastcgi_params;
#}
}
}
進入nginx容器命令:
docker exec -it mynginx /bin/bash
PHP安裝:
docker pull php:7.1.30-fpm
docker run --name myphp7 -v /home/nginx/www:/www -d php:7.1.30-fpm
-v /home/nginx/www:/www 這個映射是爲了配置nginx的時候方便,後面用得到
docker inspect --format='{{.NetworkSettings.IPAddress}}' dockerphp-fpm
查找php鏡像的ip地址
nginx 配置:
location ~ \.php$ {
fastcgi_pass 172.18.0.2(這個ip要使用 docker inspect --format='{{.NetworkSettings.IPAddress}}' myphp7 查一下):9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
配置完畢:
docker restart mynginx
在/home/nginx/www下面放個Index.php
<?php
phpinfo();
?>