Centos7使用docker搭建php+nginx
- 安装docker
#安装yum工具
yum install yum-utils -y
#配置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker
yum install -y docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io

- 安装成功后,修改docker国内镜像方法
#创建目录:
mkdir -p /etc/docker
#添加镜像
cat >> /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://xuv622op.mirror.aliyuncs.com"]
}
EOF
- 启动docker
#加载镜像加速站点:
systemctl daemon-reload
#启动docker并且设置开机启动
systemctl enable docker && systemctl start docker
- 查看是否启动
这代表没有启动成功,需要查询原因

这代表启动成功

- docker下载redis镜像命令
#pull php-fpm镜像
docker pull w3media/php73-fpm
#pull nginx镜像
docker pull nginx
等待下载镜像完后执行镜像查看命令,下图代表下载镜像成功。
docker images

- 运行php的docker镜像
#启动docker php容器
docker run -itd --name php --privileged=true -v /home/wwwroot:/home/wwwroot w3media/php73-fpm
解析命令
#docker运行镜像的命令含义
docker run
#后台运行
-itd
#给当然任务定别名,当停止当前任务时候可以用到
--name php
#有子目录权限
--privileged=true
#目录映射 服务器的当前位置:容器内的对应位置
-v /home/wwwroot:/home/wwwroot
#运行的镜像名称 可以通过 docker images 查看镜像名称
w3media/php73-fpm
下图代表运行成功了

可以使用docker ps命令查看一下,几个任务正在执行

7.运行nginx的php镜像
#启动docker php容器
docker run -d --name nginx -p 80:80 --privileged=true -v /etc/nginx:/etc/nginx -v /home/wwwroot:/home/wwwroot -v /home/wwwlogs:/home/wwwlogs --link php:php nginx
解析命令
#docker运行镜像的命令含义
docker run
#后台运行
-itd
#给当然任务定别名,当停止当前任务时候可以用到
--name nginx
#端口映射 服务器的端口:docker容器内的端口
-p 6379:6379
#有子目录权限
--privileged=true
#目录映射 服务器的当前位置:容器内的对应位置
-v /etc/nginx:/etc/nginx
#运行的镜像名称 可以通过 docker images 查看镜像名称
w3media/php73-fpm
#代表当前nginx容器内php就指向对应的php容器,可以使用命令 docker exec -it php bash ,然后cat /etc/hosts能看到php指向php容器的内网ip
--link php:php
下图代表运行成功了

8. 下面创建对应的目录
#存放php文件或html文件
mkdir -p /home/wwwroot
#存放日志文件
mkdir -p /home/wwwlogs
#存放配置文件
mkdir -p /etc/nginx
#将容器内的配置文件拷贝到主机中来
docker cp nginx:/etc/nginx /etc/nginx
然后进去到目录 /etc/nginx/conf.d/
创建cms.conf,如下配置

然后进入/home/wwwroot/cms/cmsadmin/下,将php项目拷贝其中
假如nginx没有对应读写权限,则使用命令
#将cms目录下所有授权
chmod -R 777 cms
访问网址便能运行了。
9. 停止docker容器

#停止容器运行 ,redis8代表容器名称 ,停止后可以 docker ps查看一下
docker stop nginx
#再次启动docker容器id
docker start nginx
#重命名docker容器名称
docker rename nginx nginx_bak1128
#删除掉docker容器任务
docker rm nginx