IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 零基础使用docker搭建php+nginx环境 -> 正文阅读

[PHP知识库]零基础使用docker搭建php+nginx环境

提示:本文记录使用docker搭建nginx+php环境,后面文档将记录连接redis/mysql

目前 docker 创建容器方法比较多。有时间的话可以去了解一下:官方文档。我使用的是 文件格式的compose-file 来创建容器,个人感觉非常方便


前言

提示:本文适合docker入门级别,超级适合新手:

接下里直接上代码


一、设置网络

1.创建网络

命令如下:
docker network inspect [网络名]
nginx-lss-net 是我创建的网络名

docker network inspect nginx-lss-net

2.查看网络

创建完成后使用命令查看

docker network  ls

图片(示例)
在这里插入图片描述

二、创建容器

1.创建目录

cd ~ 创建 mkdir docker 目录
cd docker 创建 mkdir expand 目录

图片(示例)
在这里插入图片描述

2.创建 yml 文件

提示:文件名称不可以改:

vim docker-compose.yml 

代码(示例)

version: '3' #版本
services:
  mysql: #mysql
    container_name: mysql-5.7.22 #别名
    image: mysql:5.7.22 #镜像名称 一般还是要带上版本号
    network_mode: "nginx-lss-net" #网络
    restart: always
    environment:
      MYSQL_USER: expand_mysql_admin # 创建新用户
      MYSQL_PASSWORD: expand_mysql_admins # 新用户的密码
      MYSQL_ROOT_PASSWORD: R349_&^#@e] # root用户的密码
      TZ: Asia/Shanghai
    volumes: #数据挂载到宿主机
      - 绝对路径/docker/expand/local/mysql/data:/var/lib/mysql
      - 绝对路径/docker/expand/local/mysql/conf:/etc/mysql
      - 绝对路径/docker/expand/local/mysql/logs:/var/log/mysql
    ports:
      - 3306:3306 #端口
  redis: #redis
    image: redis:alpine
    network_mode: "nginx-lss-net" #网络
    container_name: redis
    restart: always
    environment:
      REDIS_USER: expand_redis_admin # 创建新用户
      REDIS_PASSWORD: expand_redis_admins # 新用户的密码
      REDIS_ROOT_PASSWORD: R349_&^#@e] # root用户的密码
      TZ: Asia/Shanghai
    volumes:
      - 绝对路径/docker/expand/local/redis/redis.conf:/usr/local/etc/redis/redis.conf
      - 绝对路径/docker/expand/local/config/redis.conf:/etc/redis/redis.conf
      - 绝对路径/docker/expand/local/data/redis:/data
    ports:
      - 6379:6379 #端口
  rabbitmq: #rabbitmq
    image: rabbitmq:management-alpine
    network_mode: "nginx-lss-net" #网络
    container_name: rabbitmq #别名
    restart: always
    volumes:
      - 绝对路径/docker/expand/local/data/rabbitmq:/var/lib/rabbitmq/mnesia
    ports:
      - "5672:5672" # mq
      - "15672:15672" # 本地访问地址
  php7.4:
    image: php:7.4-fpm
    container_name: php7.4
    network_mode: "nginx-lss-net"
    restart: always
    volumes:
      - 绝对路径/docker/data/project:/www
      - 绝对路径/docker/expand/local/nginx:/etc/nginx
    ports:
      - "9074:9000" #端口

图片(示例)
在这里插入图片描述

注意:volumesdocker-compose.yml 文件同级地址

在这里插入图片描述

pwd 输出的路径就是下方红框的路径
图片(示例)
在这里插入图片描述

2.执行 yml 文件

命令:

docker-composer up

图片(示例)
在这里插入图片描述

等待执行,完后
在这里插入图片描述
然后我们的PHP/mysql/redis/rabbitmq 容器安装完成
在这里插入图片描述
查看PHP/mysql/redis/rabbitmq是否在一个网络下

命令

docker network inspect nginx-lss-net

在这里插入图片描述

可以看到有:PHP/mysql/redis/rabbitmq

二、创建nginx容器

提示:绝对路径和创建php容器一样

1.创建nginx容器

创建nginx容器命令

docker run --name run-nginx -p 8083:80 -v /绝对路径/docker/data/project:/usr/share/nginx/www -v /绝对路径/docker/expand/local/nginx/conf.d:/etc/nginx/conf.d nginx

执行成功后–图片(示例)
在这里插入图片描述

2.nginx容器加入网络

创建完成 nginx 容器后 , 把 nginx 容器加入 nginx-lss-net 网络中
命令如下:

docker network connect nginx-lss-net nginx容器ip

3.创建域名

在本机
cd /绝对路径/docker/expand/local/nginx/conf.d
创建 vim default.conf

图片(示例)
在这里插入图片描述
default.conf内容

server {
    listen       80;
    server_name  localhost; # 域名

    location / {
        root   /usr/share/nginx/www; # nginx容器项目地址
        index  index.html index.htm index.php;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    location ~ \.php$ {
        root  /www; # PHP容器项目地址
        fastcgi_pass   25cbb5d64e4c:9000; ## PHP容器id:PHP容器端口
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

cd /绝对路径/docker/data/projectproject目录下

创建 index.php文件

echo "<?php echo phpinfo();" > index.php

在这里插入图片描述

保存完成

在nginx容器执行-重启容器service nginx reload

在这里插入图片描述

访问:http://localhost:8083/

图片(示例)
在这里插入图片描述

总结一下命令

进入容器

docker exec -it 容器id bash

创建网络

docker network create -d bridge 网络名称

网络查看

docker network inspect 网络名称

容器加入网络

docker network connect 网络名称 容器id

nginx重启

service nginx reload

如果配置不可以,欢迎留言,或者直接私信

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:30:26  更:2022-05-01 15:30:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 7:17:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码