提示:本文记录使用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

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐