冀教网 - 河北教师网站 - 专注于冀教版课本资源

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 27|回复: 0

docker下如何搭建MySQL+php-fpm+nginx容器环境,本文详解

[复制链接]

4万

主题

4万

帖子

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124999
发表于 2020-5-23 18:28 | 显示全部楼层 |阅读模式


我的关键词 docker下如何搭建MySQL+php-fpm+nginx容器环境,本文详解  新闻资讯 2

<div p准备镜像/pp我使用的centos系统,docker-ce最新版本。/pp先准备好三个镜像/ppdocker pull mysql:5.7/ppdocker pull php:5.6-fpm/ppdocker pull nginx:latest/pp注意,mysql和php不要使用最新版本,坑很多。另外注意:很多人在学Java高级过程中难免会遇到各种问题解决不了。为此我建了个裙 783802103,里面很多架构师一起交流解答,薪资低于8k的勿进哦!/pp
img src="https://www.yht7.com/upload/image/20200522/1482937-20200521222901988-1292057846.png"
/p
  1. docker images #查看镜像
复制代码
p
img src="https://www.yht7.com/upload/image/20200522/1482937-20200521223142842-2059386340.png"
/pp一、构建mysql容器/p
  1. docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=ziqin666 -v /mysql:/var/lib/mysql --name your_mysql mysql:5.7
复制代码
p配置容器(进入容器)/p
  1. docker exec -it   your_mysql    bash
复制代码
p进入之后,要对用户进行授权,以便使用远程连接/pp连接mysql 输入密码:ziqin666 执行如下命令/p
  1. GRANT ALL PRIVILEGES ON *.* TO "root"@"localhost" IDENTIFIED BY "ziqin666";GRANT ALL PRIVILEGES ON *.* TO "root"@"%" IDENTIFIED BY "ziqin666";GRANT ALL PRIVILEGES ON *.* TO "root"@"127.0.0.1" IDENTIFIED BY "ziqin666";FLUSH PRIVILEGES;br data-filtered="filtered" /[align=center]img src="https://www.yht7.com/upload/image/20200522/1482937-20200521223846238-1028703766.png" [/align]
复制代码
p 此时可以使用客户端连接一下看看。(一定要把安全组规则对应端口打开)/pp
img src="https://www.yht7.com/upload/image/20200522/1482937-20200521224923467-2650966.png"
/pp二、构建php-fpm容器/pp准备工作/ppphp.ini 默认是不存在的/pp在/home/app/phpfile文件夹下创建 php.ini文件和conf.d文件夹/pp创建容器/p
  1. docker run -p 9000:9000 --name your_phpfpm -v /home/app/html:/var/www/html -v /home/app/phpfile:/usr/local/etc/php --link your_mysql:mysql  -d php:5.6-fpm
复制代码
p 命令说明:/pulli--name your_phpfpm : 将容器命名为 your_phpfpm。/lili-v /home/app/html:/var/www/html : 将主机中项目的目录 /home/app/html 挂载到容器的 /var/www/html/li/ulp
img src="https://www.yht7.com/upload/image/20200522/1482937-20200521232340191-758225522.png"
/pp安装 pdo 以便后边测试数据库连接,在docker的php容器中可以这样来安装/p
  1. docker-php-ext-install pdo_mysql
复制代码
p
img src="https://www.yht7.com/upload/image/20200522/1482937-20200521234356290-2012299209.png"
/pp安装其他插件也可以使用这种办法/pp并加入到php.ini/p
  1. extension=php_curl.dllextension=php_gd2.dllextension=php_mysql.dllextension=php_mysqli.dllextension=php_pdo_mysql.dllextension=php_pdo_odbc.dllextension=php_pdo.dll
复制代码
p如果插件还不够就需要自己定制镜像/p
  1. FROM php:7.0.12-fpmMAINTAINER Tairy tairyguo@gmail.comWORKDIR /workingRUN apt-get update --fix-missing && apt-get install -y     g++ autoconf bash git apt-utils libxml2-dev libcurl3-dev pkg-config     && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime     && echo "Asia/Shanghai" > /etc/timezone     && docker-php-ext-install iconv curl mbstring         xml json mcrypt mysqli pdo pdo_mysql zip     && docker-php-ext-configure gd         --with-gd         --with-freetype-dir=/usr/include/         --with-png-dir=/usr/include/         --with-jpeg-dir=/usr/include/     && docker-php-ext-install gd     && docker-php-ext-enable gd     && pecl install /pecl/redis-3.0.0.tgz     && docker-php-ext-enable redis     && apt-get purge -y --auto-remove     && rm -rf /var/cache/apt/*     && rm -rf /var/lib/apt/lists/*     && rm -rf /pecl
复制代码
三、安装nginx
配置文件目录:/home/app/nginx/conf.d (注释:没有的文件自主创建哈)
在配置文件目录新建 default.conf
  1. server{  listen 80;  server_name localhost;  location / {     root /usr/share/nginx/html;     index index.html index.htm;   }  location ~ .php$ {     fastcgi_pass your_phpfpm:9000;  #此处写docker里边php 的名称: your_phpfpm    fastcgi_index index.php;     fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;    include fastcgi_params;   }   error_page 500 502 503 504 /50x.html;  location = /50x.html {    root /usr/share/nginx/html;  }}
复制代码
创建容器
  1. docker run -p 81:80  --name your_nginx    -v /home/app/nginx/www:/usr/share/nginx/html    -v /home/app/nginx/conf.d:/etc/nginx/conf.d    --link your_phpfpm:phpfpm     -d nginx:latest
复制代码
我的关键词 docker下如何搭建MySQL+php-fpm+nginx容器环境,本文详解  新闻资讯 1482937-20200521235223047-1200248044

映射容器中的phpfpm和mysql都为固定,不能修改!
这里需要配置nginx使用用户,即把/etc/nginx/nginx.conf里的nginx用户修改为www-data,同时把/home/app/nginx/www下的文件所有者改为www-data:www_data,否则访问会有权限问题
  1. chown -R www-data:www-data www
复制代码
四 、 测试
1、查看服务
  1. docker  ps -a
复制代码
STATUS 皆为up ,即运行中
2、测试 php解析
宿主机 /home/app/nginx/www/目录下修改 index.php 文件。
[code]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|冀教网 - 河北教师网站 - 专注于冀教版课本资源  

GMT+8, 2020-6-5 20:21 , Processed in 0.294175 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表