Docker搭建Ngnix、php5.6、php8、postgresql、redis

一、手动创建Volumes(卷),名称为:dev-pgdata

这个内容作为postgresql使用

二、修改docker-compose.yml文件对应路径

E:\wwwroot可修改,也可以修改为卷名

E:/backup/www可修改

E:\dev-server\nginx\conf.d可修改

注意:在php8中fpm端口是9200,所以下面php8端口映射应该是9010:9200,如果一定要9000需要这样改docker exec -it dev-php8.fpm /bin/bash

cd /usr/local/etc/php-fpm.d

vim www.conf 里面的9200端口修改为9000

vim zz-docker.conf 里面的9200端口修改为9000

bash 复制代码
volumes:
  dev-pgdata:  #pg数据库卷组
    external: true
networks:
  dev-network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.28.0.0/16
services:
  openresty:
    image: openresty/openresty:latest
    container_name: dev-openresty
    networks:
      dev-network:
        ipv4_address: 172.28.0.10
    ports:
      - "8080:80"  # 这边是8080端口指向80端口,一般修改为80端口指向80端口接口,即80:80
      - "8043:443"
    volumes:
      - E:\wwwroot:/www  #项目的根目录,项目都放在这边,这边设置的是wwwroot下,后续需要变更直接追加就可以
      - E:\dev-server\nginx\conf.d:/etc/nginx/conf.d  #nginx conf
      - E:\dev-server\ningx\log:/var/log/nginx #nginx log
      - E:/backup/www:/data/www        # Win 宿主机路径写法  这是备份,可以不需要直接删除
    restart: always

  php5.6:
    image: php5.6-containers          # 你本地已有这个镜像
    container_name: dev-php5.6
    networks:
      dev-network:
        ipv4_address: 172.28.0.11
    ports:
      - "9020:9000"
    volumes:
      - E:\wwwroot:/www
      - E:/backup/www:/data/www
    restart: always

  php8fpm:
    image: php8.fpm-containers        # 你本地已有这个镜像
    container_name: dev-php8.fpm
    networks:
      dev-network:
        ipv4_address: 172.28.0.12
    ports:
      - "9010:9000"
    volumes:
      - E:\wwwroot:/www
      - E:/backup/www:/data/www
    restart: always
  redis:
    image: redis-containers        # 你本地已有这个镜像
    container_name: dev-redis
    networks:
      dev-network:
        ipv4_address: 172.28.0.15
    ports:
      - "6378:6379"
    volumes:
      - E:/dev-server/redis:/etc/redis #conf 
    restart: always
  postgres:
    image: postgres        # 你本地已有这个镜像
    container_name: dev-postgres
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: M908uJ76e$90e_wew
    networks:
      dev-network:
        ipv4_address: 172.28.0.13
    ports:
      - "16432:5432"
    volumes:
      - dev-pgdata:/var/lib/postgresql/data
      - E:/backup/database:/data/
    restart: always

三、安装

1、docker-compose.yml、openresty-containers.tar、php5.6-containers.tar、php8.fpm-containers.tar和redis-containers.tar都放在G:\dev-server文件加载

openresty-containers.tar、php5.6-containers.tar、php8.fpm-containers.tar和redis-containers.tar需要挂载到docker中

docker load -i G:\dev-server\openresty-containers.tar

docker load -i G:\dev-server\ php5.6-containers.tar

docker load -i G:\dev-server\php8.fpm-containers.tar

docker load -i G:\dev-server\redis-containers.tar

是否挂载成功可以在这边看

2、dos命令进入G:\dev-server

3、运行docker network create --driver bridge --subnet 172.28.0.0/16 dev-network

设置网络,需要注意命令中的ip需要与docker-compose.yml中的一致

4、执行安装:需要注意git-deploy名称需要与容器组名称一致,在这边使用的是dev-server

docker compose -p git-deploy up -d

注意:1、如果对于安装包不是本地的,而是通过docker下载下来的注意docker-compose.yml文件中image需要修改。

以openresty-containers.tar为例:

原来openresty:

image: openresty/openresty:latest

当时下载的名称为openresty/openresty:1.27.1.2-4-alpine-fat

则修改为openresty:

image: openresty/openresty:1.27.1.2-4-alpine-fat

2、如果报一下错误:说明网络已经存在又去创建

直接修改.yml文件

3、需要注意redis安装会失败,需要在redis挂载目录下增减redis.conf文件

4、如果windows需要进入docker的linux系统的php5.6

docker exec -it dev-php5.6 /bin/bash

5、php安装扩展命令。以下命令式安装psql扩展

docker-php-ext-install psql

需要对应安装包的可以去我上传的资源中查看

相关推荐
tuokuac17 分钟前
docker中nginx配置报错解决
linux·运维·服务器
Joren的学习记录1 小时前
【Linux运维大神系列】docker详解(四)
linux·运维·docker
Elastic 中国社区官方博客2 小时前
让我们把这个 expense 工具从 n8n 迁移到 Elastic One Workflow
大数据·运维·elasticsearch·搜索引擎·ai·信息可视化·全文检索
程序员佳佳3 小时前
2025年大模型终极横评:GPT-5.2、Banana Pro与DeepSeek V3.2实战硬核比拼(附统一接入方案)
服务器·数据库·人工智能·python·gpt·api
( •̀∀•́ )9203 小时前
GitHub Actions SSH 部署密钥
运维·ssh·github
louqle3 小时前
docker基本知识及常用命令汇总
运维·docker·容器
学烹饪的小胡桃3 小时前
【运维学习】实时性能监控工具 WGCLOUD v3.6.2 更新介绍
linux·运维·服务器·学习·工单系统
叫致寒吧4 小时前
Docker
运维·docker·容器
杨浦老苏4 小时前
现代流媒体聚合播放器冬瓜TV MAX
docker·群晖·多媒体
白露与泡影4 小时前
使用systemd,把服务装进 Linux 心脏里~
linux·运维·python