利用docker-compose快速部署php-fpm+nginx环境

docker compose:

Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。docker compose项目允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。它可以方便地对一组docker容器的生命周期进行管理。

编写docker-compose.yml(注意格式)

version: "2"
services:
  web:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      - ./code:/code  #创建项目根目录
      - ./test.conf:/etc/nginx/conf.d/default.conf #test.conf nginx配置文件
    networks:
      - code-network
  mysql:
    image: mysql:5.7
    volumes:
      - ./data/mysql:/var/lib/mysql:rw #创建 /data/myql 目录
      - ./logs/mysql:/var/lib/mysql-logs:rw  # /logs/mysql 目录
      - ./mysql/conf.d:/etc/mysql/conf.d:ro # /mysql/conf.d 目录
    ports:
      - "3308:3306"
    environment:
      MYSQL_USER: root  
      MYSQL_PASSWORD: 123456 
      MYSQL_ROOT_PASSWORD: 123456
    networks:
      - code-network
  php:
    build: ./php/  #创建 php目录
    volumes:
      - ./code:/code
    networks:
      - code-network

networks:
  code-network:
    driver: bridge

目录为:code data logs mysql php
这里因为要连接mysql 需要用到mysqli扩展 所以php用了Dockerfile构建自己的php镜像。
Dockerfile文件内容:

FROM php:5.6-fpm
RUN docker-php-ext-install mysqli

容器之间通过networks进行通讯。

执行docker-compose up
通过数据工具创建一个测试库和测试表。或者通过 docker exec -it mysql bash
进入mysql命令行 进行创建相应的测试数据。
然后访问
http://localhost:8080 (配置文件里的 端口自己任意修改)

编写一个连接mysql的测试文件connect_mysql.php

<?php
conn = new mysqli("mysql:3306", 'root', '123456', 'test');
if(!$conn){
    die($conn->connect_error);
}
$result = mysqli_query($conn, "select * from user");
while ($arr = $result->fetch_assoc()) {
    var_dump($arr);
} 
?>

然后访问http://localhost:8080/connect_mysql.php 就能看到数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值