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
volumes:dev-pgdata: #pg数据库卷组external: true
networks:dev-network:driver: bridgeipam:config:- subnet: 172.28.0.0/16
services:openresty:image: openresty/openresty:latestcontainer_name: dev-openrestynetworks:dev-network:ipv4_address: 172.28.0.10ports:- "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: alwaysphp5.6:image: php5.6-containers # 你本地已有这个镜像container_name: dev-php5.6networks:dev-network:ipv4_address: 172.28.0.11ports:- "9020:9000"volumes:- E:\wwwroot:/www- E:/backup/www:/data/wwwrestart: alwaysphp8fpm:image: php8.fpm-containers # 你本地已有这个镜像container_name: dev-php8.fpmnetworks:dev-network:ipv4_address: 172.28.0.12ports:- "9010:9000"volumes:- E:\wwwroot:/www- E:/backup/www:/data/wwwrestart: alwaysredis:image: redis-containers # 你本地已有这个镜像container_name: dev-redisnetworks:dev-network:ipv4_address: 172.28.0.15ports:- "6378:6379"volumes:- E:/dev-server/redis:/etc/redis #conf restart: alwayspostgres:image: postgres # 你本地已有这个镜像container_name: dev-postgresenvironment:POSTGRES_USER: postgresPOSTGRES_PASSWORD: M908uJ76e$90e_wewnetworks:dev-network:ipv4_address: 172.28.0.13ports:- "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
需要对应安装包的可以去我上传的资源中查看
