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

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

相关推荐
天诰1 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
分布式存储与RustFS2 小时前
镜像仓库的层别堆本地盘:用 RustFS 给 Docker Registry 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
陈希1233 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡3 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
@兽血沸腾4 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
闲云自留地9 小时前
K8s 的记忆大脑!ETCD 集群部署、etcdctl 命令与备份恢复全通关
容器·kubernetes·etcd
讯捷蓝达9 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
数字新视界11 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落12 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
lisanmengmeng12 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器