Linux 上 docker 配置(Nginx+php)
挂载配置操作需要的前提: 服务器上已经安装docker
关于宿主机文件和docker容器的文件夹挂载:容器挂载只能挂载文件夹。
以我的为例:宿主机nginx 放置在 服务器根目录下 因此以 /nginx 为开头
一、创建nginx
先docker pull nginx:1.18.0 拉取nginx版本1.18.0
docker run -p 80:80 -name nginx -v /var/www:/var/www -v /nginx/conf:/etc/nginx/conf -v /nginx/conf.d:/etc/nginx/conf.d -d nginx:1.18.0
二、创建phpfpm 解析器
先docker pull php:7.1-fpm 拉取php-fpm版本 7.1
/var/www 是我web项目的文件夹我是放 tp5.1 在里面的
docker run -p 9000:9000 --name phpfpm -v /var/www:/var/www -d php:7.1-fpm
获取phpfpm 检测ip
docker inspect --format='{{.NetworkSettings.IPAddress}}' phpfpm
显示IP: 172.17.0.2
获得phpfpm ip之后
更改宿主机/nginx/conf 目录下的default 文件
把以下这段类似的设置替换 或者删除前面的注释符号 #
location ~ \.php$ {
root /var/www/public;
fastcgi_pass 172.17.0.2:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
配置中 fastcgi_pass 的172.17.0.2就是 检测IP命令获取到的IP
对应docker的文件挂载问题需要对 宿主机和docker容器 和镜像理解 后才可以一步一步深入,一开始我也绕晕了,后面领悟之后就好了。
需要交流的可以加我Q:1402464923