Centos7使用docker搭建php+nginx

  1. 安装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

在这里插入图片描述

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

这代表启动成功
在这里插入图片描述

  1. docker下载redis镜像命令
#pull php-fpm镜像
 docker pull w3media/php73-fpm
 #pull nginx镜像
 docker pull nginx

等待下载镜像完后执行镜像查看命令,下图代表下载镜像成功。

docker images

在这里插入图片描述

  1. 运行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