主要介绍docker搭建php,docker安装使用请自查
docker拉取nginx和php镜像
docker pull nginx:latest 这里我直接拉最新版的niginx latest(最新版本)
docker pull php:7.4-fpm php我们就拉php7.4版本的fpm就好了
使用docker images查看已安装的镜像
创建容器
先创建ngix文件夹存放等会php文件要挂载的目录,我创建在/docker/nginx/www/myphp目录的
命令
mkdir -p /docker/nginx/www/myphp (-p代表递归创建,按目录层级创建目录)
创建容器:docker run --name myphp -v /docker/nginx/www/myphp:/www/myphp -d c5fdabeef32a创建运行php的容器,名为myphp
-v代表挂载目录,将服务器外面的目录与创建的容器里的目录进行挂载,以后修改代码直接在容器外的服务器目录就可以修改了
-d代表后台运行
c5fdabeef32a代表php-fpm的镜像id,可通过docker images进行查看安装的镜像
查看刚才运行的容器,通过 docker ps查看
创建conf、conf.d目录 mkdir -p /docker/nginx/conf/conf.d,一定要用mkdir -p递归创建目录,即使上级目录不存在,会按目录层级自动创建目录
创建自己的conf文件,可以自己命名
vim myphp.conf
erver {
listen 80;
server_name localhost; #这里修改成自己的域名,我这里是本地运行所以填的localhost
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
#当请求网站下php文件的时候,反向代理到php-fpm
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/myphp/$fastcgi_script_name;
include fastcgi_params;
}
}
登录后复制

关于配置文件,这篇文章说的很详细:https://www.cnblogs.com/donghui521/p/10334776.html
创建运行nginx的容器,打通nginx与php容器之间的关联
docker run --name nginx1 -p 8088:80 -d \
-v /docker/nginx/www:/usr/share/nginx/html \
-v /docker/nginx/conf/conf.d:/etc/nginx/conf.d \
--link myphp:php nginx
-p 主机和容器端口互联,主机8088:80
-v 目录挂载
-d 后台运行
--link nginx和php容器互联
登录后复制
如果我们想进一步的修改nginx配置。
通过docker exec -it mynginx /bin/bash进入容器
vim /etc/nginx/nginx.conf 编辑配置文件
# 如果没有vim,通过下面的命令进行安装vim
apt-get update #更新包管理
apt-get install vim -y #安装vim
登录后复制
测试
在我们之前创建的/docker/nginx/www/myphp文件夹中创建一个index.php
<?php
echo phpinfo();
?>