1. 下载nginx镜像
docker pull nginx:latest
2. 运行nginx镜像 -v 挂载本地目录
docker run --name nginx -d -p 80:80 -v /Users/your-mac-name/docker/www:/usr/share/nginx/html:ro nginx
需要将your-mac-name替换成你的用户名称
3. 查看运行中的容器
docker ps
4. 下载php8.0 镜像
docker pull php:8.0-fpm
5. 运行php镜像 并挂载本地目录
docker run --name php -d -v /Users/your-mac-name/docker/www:/usr/share/nginx/html php:8.0-fpm
6. 复制nginx配置文件至本地目录
docker cp nginx:/etc/nginx /Users/your-mac-name/docker/nginx
7. 删除nginx容器
docker rm -f nginx
8. 重新运行nginx 与 php 建立通信
docker run --name nginx -p 80:80 -v /Users/your-mac-name/docker/www:/usr/share/nginx/html -v /Users/your-mac-name/docker/nginx/:/etc/nginx -v /Users/your-mac-name/docker/nginx/logs:/var/log/nginx --link php:php -d nginx:latest
上述步骤均完成的话就可以根据自己的的需要去配置nginx配置
vim /etc/nginx/conf.d/default.conf
location ~ \.php$ {
# root html;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
修改 nginx 配置,这里有几个注意事项:
1、fastcgi_pass 指定为 php 容器名字:端口
2、fastcgi_param 参数 SCRIPT_FILENAME 要设置为 nginx的目录地址$fastcgi_script_name
9. 重启nginx
docker restart nginx
至此Nginx 和 PHP环境已经安装完了
10 安装mysql
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
将root替换成你的密码即可,然后可以用Navicat链接试试。
11. 安装redis
docker pull redis:latest
docker run --name redis -p 6379:6379 -d redis:latest
12. 建立nginx、php、mysql、redis 之间的通信
docker run --name service-nginx -p 80:80 -v /Users/your-mac-name/docker/www:/usr/share/nginx/html -v /Users/your-mac-name/docker/nginx:/etc/nginx -v /Users/your-mac-name/docker/nginx/logs:/var/log/nginx --link php:php --link redis:redis --link mysql:mysql -d nginx:latest