Docker compose 搭建php本地开发环境(php+mysql+nginx)

PHP负载+mysql主备+nginx

本地开发如果不用负载,就在下面的docker-compose.yml里面注释掉myphp2的配置就好了,mysql不主备也一样,注释掉mysql-slave就好了。

前期准备

1、拉取镜像到本地
在这里插入图片描述我使用的镜像里面mysql和nginx都是直接从官方拉取下来的,php:7.1.9-fpm-new 是我自己用Dockerfile构建的,里面安装上一下常用扩展之类的。
2、安装 docker-compose

以下内容需要保存到docker-compose.yml文件里面
version: "3"
services:
  #nginx 服务
  webserver:
    image: nginx
    volumes:
      - "/Users/linzehui/www:/usr/share/nginx/html"
      - "/Users/linzehui/work/docker_project/nginx/conf/conf.d:/etc/nginx/conf.d"
    depends_on: #启动依赖
      - myphp1 #先启动myphp1
      - myphp2 #再先启动myphp2,最后再启动 webserver
    networks: 
      - web-net #自己先创建的网络,容器直接可以互通
    ports:
      - "80:80"
      - "443:443"
    container_name: webserver #容器名称

  #php服务1
  myphp1:
    image: php:7.1.9-fpm-new
    volumes:
      - "/Users/linzehui/www:/var/www/html"
    networks: 
      - web-net
    command: php-fpm #启动容器后执行的命令
    container_name: myphp1

  #php服务2(没有启用)
  myphp2:
    image: php:7.1.9-fpm-new
    volumes:
      - "/Users/linzehui/www:/var/www/html"
    networks: 
      - web-net
    command: php-fpm
    container_name: myphp2

  #Mysql-Master
  mysql-master:
    image: mysql:5.7
    ports:
      - "3339:3306"
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_ROOT_HOST: "%"
    volumes:
      - "/Users/linzehui/work/docker_project/mysql/master/data:/var/lib/mysql"       # 挂载数据目录
      - "/Users/linzehui/work/docker_project/mysql/master/config:/etc/mysql/conf.d"  # 挂载配置文件目录
    networks: 
      - web-net
    container_name: mysql-master

  #Mysql-Slave
  mysql-slave:
    image: mysql:5.7
    ports:
      - "3340:3306"
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_ROOT_HOST: "%"
    volumes:
      - "/Users/linzehui/work/docker_project/mysql/slave/data:/var/lib/mysql"       # 挂载数据目录
      - "/Users/linzehui/work/docker_project/mysql/slave/config:/etc/mysql/conf.d"  # 挂载配置文件目录
    networks: 
      - web-net
    container_name: mysql-slave

networks:
  web-net:

然后自己再配置好nginx相关内容,再从docker-compose.yml所在的目录启动容器:

docker-compose up -d

Docker compose 搭建php本地开发环境(php+mysql+nginx)_第1张图片然后就可以正常访问了~~

你可能感兴趣的:(技术,docker,php)