搭建php Docker环境

创建Nginx容器

docker pull nginx
docker run -p 8081:80 --name mynginx1 -v /data/www/wwwroot/project:/home -v /data/www/wwwroot/conf:/etc/nginx/conf.d -d nginx

  • -p 代表着把容器中的80端口绑定到宿主机的8081端口,所以以后访问宿主机的80端口就会转发到nginx容器的80端口
  • -name 启动的容器的名称
  • -v 就是把我主机的/data/www/wwwroot/project目录映射到容器中的/home目录中,在容器中访问/home你就会发现是我/data/www/wwwroot/project目录中的东西。我映射了项目目录和配置文件
  • -d 后台运行容器
    后面的那个nginx就是镜像的名称了

创建php容器

docker pull php:7.2.9-fpm
docker run -p 9000:9000 --name myphp1 -v /data/www/wwwroot/project:/home -d php:7.2.9-fpm

修改nginx配置文件

  • 查看php容器ip
    docker inspect 容器ID或容器名 |grep ‘“IPAddress”’
  • vim /data/www/wwwroot/conf/default.conf
  • 重启nginx容器 docker restart mynginx1
server {
    listen       80;
    server_name  localhost;
    root /home;

    access_log  /var/log/nginx/access.log  main;
    error_log /var/log/nginx/error.log error;

    location / {
        index  index.html index.htm index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   172.17.0.7:9000;//ip地址为php容器ip
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
  • 注意nginx和php的目录挂载点,不然就会找不到目录

创建mysql容器

git pull mysql:5.6
docker run -p 3307:3306 --name mymysql -v /data/www/wwwroot/mysql/conf:/etc/mysql/conf.d -v /data/www/wwwroot/mysql/logs:/logs -v /data/www/wwwroot/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

测试mysql连接

vim /data/www/wwwroot/project/index.php

<?php
echo 'hello world docker';
$dsn = "mysql:dbName=test;host=172.17.0.7";//docker mysql ip地址
$user = "root";
$pass = "123456";
$res = new PDO($dsn, $user, $pass);
var_dump($res);
  • 此时缺少mysql driver
  • 安装pdo_mysql
  • 进入容器 docker exec -it myphp1 /bin/bash
  • 至目录下 cd /usr/local/bin
  • 安装扩展 ./docker-php-ext-install pdo_mysql
  • 重启容器 docker myphp1 restart

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值