docker系列 -- 安装Nginx
1、拉取Nginx镜像
docker pull nginx
2、启动容器
docker run -d --name nginx -p 80:80 nginx
3、访问Nginx,出现Nginx欢迎页面
curl localhost
4、创建目录存储 Nginx 的配置和日志
mkdir -p /docker/nginx && cd /docker/nginx
mkdir conf log
mkdir -p conf/vhost
5、从容器内复制配置文件到宿主机,经配置文件映射到容器内对应的目录中(这样在宿主机就能改容器里面的配置)
docker cp nginx:/etc/nginx/conf.d/default.conf /docker/nginx/conf/vhost/default.conf
docker cp nginx:/etc/nginx/nginx.conf /docker/nginx/conf/nginx.conf
6、重建容器
1、docker stop nginx && docker rm nginx
2、docker run --name nginx -p 80:80 \
-v /docker/nginx/conf/vhost:/etc/nginx/conf.d \
-v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /www:/var/www/html \(这里是nginx默认访问的地方,/www这块的路径必须与PHP的一致)
-v /docker/nginx/log:/var/log/nginx --link php7.4-fpm:php7.4-fpm -d nginx
7、查看容器状态
docker ps -a
问题1:curl localhost报错,提示file not find
原因:nginx读取网站根目录时没有找到php文件
解决:找到项目目录挂载位置(启动容器时的-v /webroot:/var/www/html)。我的项目目录挂载在 /var/www/html目录下
修改Nginx配置文件的fastcgi_param为 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
修改root 目录为 /var/www/html (如果有指定项目,后面接项目的根目录)
最后重启Nginx