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

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

相关推荐
知识分享小能手3 分钟前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04 中安装 Docker 容器 —— 知识点详解(26)
学习·ubuntu·docker
小五传输14 分钟前
网闸怎么选?新型网闸凭安全高效,成企业优选方案
大数据·运维·安全
C_心欲无痕16 分钟前
nginx - 核心概念
运维·前端·nginx
HABuo20 分钟前
【Linux进程(五)】进程地址空间深入剖析-->虚拟地址、物理地址、逻辑地址的区分
linux·运维·服务器·c语言·c++·后端·centos
开开心心_Every20 分钟前
安卓做菜APP:家常菜谱详细步骤无广简洁
服务器·前端·python·学习·edge·django·powerpoint
Gold Steps.29 分钟前
K8s Gateway-API 标准化流量治理
容器·kubernetes·gateway
五仁火烧37 分钟前
HTTP 服务器
服务器·网络·网络协议·http
Knight_AL37 分钟前
使用 Docker 快速安装 GitLab(CentOS)
docker·centos·gitlab
米高梅狮子37 分钟前
01-Ansible 自动化介绍
运维·自动化·ansible
sww_102640 分钟前
TCP协议
服务器·网络·tcp/ip