Docker 配置nginx+php+mysql

关于docker的详细安装与原理不做过多介绍, 我一般只用nginx+php+mysql开发用, 因为之前有几套不同版本的代码所以用docker来解决

我这里直接在docker下使用容器来关联的 并没有单独安装系统 因为本地开发 装系统在装插件会占很大内存

  • mysql 我一般习惯先装mysql 这样按顺序往下执行
docker pull mysql:5.6

安装mysql5.6
运行mysql

docker run -itd --name mysql-dev -p 33060:3306 --privileged=true -e MYSQL_ROOT_PASSWORD=123456  742f7d5a4104

--name 起一个名字不和存在的容器重复 因为本地还有3306端口占用所有换了一个端口 --privileged=true 使用root权限 后边是密码 742f7d5a4104这个是镜像的id 可以使用 docker images 查看刚下载的mysql镜像id
运行后出现一串字符串则运行成功了

  • 安装php7.2
docker pull php:7.2-fpm
docker run --name shop-php -d -p 9000:9000 -v /Users/gly/Desktop/work/php/tpshop:/var/www/html --link mysql-dev bfa9828f1dc3

关联上边的mysql-dev启动 设置好路径映射

  • 安装nginx
docker pull nginx
docker run --name shop-nginx -d -p 10000:80 -v  /Users/gly/Desktop/work/php/tpshop:/usr/share/nginx/html --link shop-php --volumes-from shop-php  c7460dfcab50

关联php运行映射端口号10000 关联项目路径

这时候还需要修改nginx配置文件

location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
        try_files $uri $uri/ /index.php?$query_string;
    }

location ~ \.php$ {
        root           html;
        fastcgi_pass   shop-php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME      
        /var/www/html$fastcgi_script_name;
        include        fastcgi_params;
    }

shop-php:9000 是修改后的

docker cp /Users/gly/Desktop/work/docker/default.conf shop-nginx:/etc/nginx/conf.d/default.conf
docker restart nginx

替换配置文件 重启nginx


image.png

运行项目php还需要安装扩展

docker exec -i -t shop-php /bin/bash 以终端模式进入php
php -m 查看扩展
docker-php-ext-install pdo_mysql
安装yaf扩展
RUN pecl install yaf-3.0.8 && docker-php-ext-enable yaf
配置入口路径
root /usr/share/nginx/html/public;
fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;
获取容器内ip
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器name或id
修改php.ini 直接在下边增加ini文件就可以了
yaf-php:/usr/local/etc/php/conf.d/yaf.ini

docker 常用的命令

docker pull 拉取镜像
docker images 列出本地镜像
docker ps  显示正在运行的容器
docker ps -a  显示所有容器
docker rm 容器名 删除容器
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id 查看容器ip
docker cp 目录 容器:目录 复制文件
docker start/restart/stop  容器名 启动/重启/停止 容器
docker exec -i -t 容器名 /bin/bash 终端形式进入容器 exit 退出容器命令
docker php 安装扩展 pecl install yaf-3.0.8 && docker-php-ext-enable yaf 类似方法 (正常可以先执行后边,有的php已经安装了 像pdo_mysql直接执行后边就可以了 如果不好用在前面的)
修改php.ini 直接在下边增加ini文件就可以了
容器名称:/usr/local/etc/php/conf.d/myphp.ini
修改mysql配置 /etc/mysql/my.cnf
mysql -uroot -p123456 进入mysql操作

分享一个docker配置读写分离的文章我测试过了没有问题

重启 php 与 nginx 至此配置完毕 本人也是刚开始使用, 如果问题提出来大家一起验证

你可能感兴趣的:(Docker 配置nginx+php+mysql)