docker部署php的性能,Docker 学习之部署php + nginx(一)
博主电脑系统是window 10 专业版的,所以在此记录下docker的基本使用方法。
参考地址:
在这里主要也就是针对上述地址做一个完整版的整合,主要方便以后查看。
一. 系统检查
1.1 检查自己的电脑是否开启了虚拟化(在任务管理器 \ 性能 界面查看)
进入方法:在最下方的任务栏 -> 鼠标右键 -> 任务管理器
1.2 查看 Hyper-V 是否打开
进入方法:控制面板 -> 程序 -> 程序和功能 -> 启动或关闭 Windows 功能
**注意**:如果自己的电脑虚拟化已经开启,同时 自己的电脑系统版本又是win10 专业版及以上 Hyper-v 还是无法开启,那么楼主建议不要去纠结了直接重装系统,楼主为了这个弄了一天最终还是重装系统解决的。
二。Docker 安装
2.1 docker 下载及安装
在下载过程中可能会需要去注册一个账号,这里就不细说,
安装完docker 以后我们需要做一个简单的设置
在安装完成成功运行以后我们点击 这个小鲸鱼 -> 单击 Settings ,进入设置界面 -> 左边菜单栏 点击 Daemon -> 点击Basic -> 找到 "registry-mirrors":[]
设置完成以后 点击 Apply 自动重启 docker
2.2 nginx 安装
2.2.1 查找nginx
docker search nginx
2.2.2 拉取官方的nginx
docker pull nginx
拉取完成以后,查看当前镜像文件
docker images nginx
2.2.3 启动nginx容器实例
docker run -d -p 8080:80 --name mynginx nginx
-d:后台运行
-p:设置端口号映射到本机,将 80 端口映射到本机的 8080 端口,外部访问8080端口即可
--name:设置容器名称
2.2.4 查看启动的nginx实例docker ps -l
-l:表示查看最后一个启动的容器,可以不用带
-a:表示查询查询所有启动过的容器,包括停止的容器
docker ps: 查看当前运行中的容器
2.2.5 本机访问测试
进入到此页面表示 nginx 安装成功
三。php + nginx 部署
3.1 在本地电脑创建如下几个文件夹方便后续将容器内文件映射到本地修改
3.2 搜索php
docker search php
3.3 拉取php
docker pull php:7.1-fpm
# 因为PHP有多个版本,这里就以拉取7.1版本为例子
3.4 启动php
3.4.1 随便启动一个,因为需要将php的配置文件和日志文件复制出来到本地
docker run -d -v E:\docker\www:/var/www/html -p 9000:9000 --name myphp php:7.1-fpm
-d:后台运行
-v E:\docker\www:/var/www/html: 将本地的html存储地址和php的html存储地址做一个映射
--name myphp:重命名
3.4.2 复制php的配置文件和日志文件到本地
docker cp myphp:/usr/local/etc E:\docker\php-conf
docker cp myphp:/usr/local/var/log E:\docker\php-log
docker cp myphp:/var/www/html E:\docker\www
myphp:是我们前面运行的php的名称
复制完以后我们可以在本地对应的文件夹下面看到复制出来的文件,这个时候我们需要做一个处理,就是将这些文件夹中的文件全部复制到根目录,如下
php-log 文件夹中没有东西是因为复制出来的log下本身就没有文件,所以不用管
3.4.3 删除原有的myphp,重新运行php
# 停止myphp 容器
docker stop myphp
# 删除myphp 容器
docker rm myphp
# 重新运行php容器,同时映射配置文件# 全指令
docker run -d -v E:\docker\php-conf:/usr/local/etc -v E:\docker\php-log:/usr/local/var/log -v E:\docker\www:/var/www/html -p 9000:9000 --name myphp php:7.1-fpm#指令分析docker run -d
-v E:\docker\php-conf:/usr/local/etc # 指定配置文件
-v E:\docker\php-log:/usr/local/var/log # 指定日志文件
-v E:\docker\www:/var/www/html # 指定html界面路径
-p 9000:9000 # 映射端口号
--name myphp php:7.1-fpm # 重命名
# 查看运行的容器
docker ps
3.4.4 复制nginx的配置文件到本地
因为光有php还不行,因为php只能帮我们编译php代码,而运行还是需要依靠服务器来完成
docker cp mynginx:/etc/nginx E:\docker\nginx-conf
# 因为我们之前就已经创建一个一个nginx容器,所以直接将里面的配置文件复制出来就可以了。
docker stop mynginx
# 停止这个容器
docker rm mynginx
# 删除这个容器
复制出配置文件以后,我们还需要在log文件中创建如下两个文件
3.4.4 重新启动nginx,同时指定映射文件位置
# 全命令
docker run -d -p 80:80 -v E:\docker\www:/var/www/html -v E:\docker\nginx-conf:/etc/nginx/ -v E:\docker\nginx-log:/var/log/nginx/ --link myphp:php --name mynginx nginx
# 命令分析
docker run -d -p 80:80 # 映射端口号
-v E:\docker\www:/var/www/html # 指定html页面位置
-v E:\docker\nginx-conf:/etc/nginx/ # 指定配置文件位置
-v E:\docker\nginx-log:/var/log/nginx/ # 指定日志文件位置
--link myphp:php --name mynginx nginx # 重命名
指定本地html储存的位置与nginx做映射
指定本地nginx的配置文件位置和nginx配置文件做映射
3.4.5 本地修改配置文件(附上配置文件,仅供参考)
文件位置是前面映射过来到本地的文件夹
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /var/www/html;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www/html;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
在配置文件中需要将 php 的注解去掉,并且修改访问的路径
3.4.6 创建index.php
3.4.7 本地测试运行
注意:在这里我们主要注意一下 nginx配置文件中的 php 下的 fastcgi_pass 和 fastcgi_param,因为如果 php 下的这两个出错 将会导致php的代码无法解析从而报错, 还有要检查配置文件是否映射正确。
docker部署php的性能,Docker 学习之部署php + nginx(一)相关推荐
- openGauss 学习环境部署(docker方式),并使用dbeaver进行连接
1.下载opengauss docker镜像 //搜索opengauss镜像源. [root@mongodb ~]# docker search opengauss INDEX NAME DESCRI ...
- docker 利用docker拉取Nvidia/cuda官方镜像,部署深度学习环境
利用docker拉取Nvidia/cuda官方镜像,部署深度学习环境 1.拉取Nvidia/cuda官方镜像 2.生成容器 3.在容器内安装深度学习环境 看完这篇博文,可以查看我总结的另一篇博文教程: ...
- 学习笔记|Flask部署Pytorch模型+Gunicorn+Docker
一.使用Flask部署Pytorch模型 其实原理很简单,我们希望使用一个已经训练好的pytorch模型,用它做预测或生成.我们的模型部署在服务器上,客户端可以通过http request调用我们部署 ...
- 【基于 docker 的 Flask 的深度学习模型部署】
文章目录 1.前言 2.docker简介 3.基于Falsk的REST API实现 4.编写dockerfile 5.基于docker的模型部署 1.前言 模型部署一直是深度学习算法走向落地的重要的一 ...
- window10 vmware centos8 搭建docker学习环境 部署spring web应用
1.windows 安装 vmware , 安装 centos8 部署省略: 2.centos8安装 docker 参见docker 菜鸟教程 https://www.runoob.com/docke ...
- 利用Docker/Ansible实现轻量集群服务部署(视频演示+彩蛋)
周良伟 网易云信系统架构师 负责云信IM平台的架构设计和服务器研发团队 作者简介 今天和大家分享的主题是如何用Docker/Ansible来做轻量私有化的技术方案.首先,简单介绍一下所谓轻量私有化到底 ...
- 深入浅出Docker(四):Docker的集成测试部署之道
本文原创版权归 infoq 肖德时 所有,此处为技术收藏,如有再转,请于篇头保留原创作者及出处,以示尊重! 作者: 肖德时 原文: http://www.infoq.com/cn/articles/d ...
- docker使用mongo_如何使用Docker在AWS上部署Mongo:初学者的权威指南
docker使用mongo 为什么需要这个? (Why you need this?) 因为JS + Python + Mongo =完整的数据开发 (Because JS + Python + Mo ...
- docker 部署_Kooteam搭建之Docker部署
Kooteam搭建之Docker部署 前言 撰写此部署的文档,主要有两个目的:1.熟悉Docker的基本使用:2.为方便自身的工作的管理,在网络上找了开源的kooteam 软件,作为自身的工作管理: ...
最新文章
- 《Adobe Photoshop CC经典教程》—第1课1.2节使用工具
- ES6的新特性----Vue学习必备基础知识
- 14-jQuery补充
- 关于[入行几年后,你的未来应该在哪里]的思考
- gitee传入公钥以后每次push依然需要输入密码
- 函数式编程基础_在收件箱中免费学习函数式编程的基础
- 浅谈2011年上半年Java游戏领域动态
- 字典 选取前100_100道 Python 经典练习题004
- 对于区块链在现实落地的一些技术业务关注点
- WinHex编写16进制文件通过NetAssist网络调试助手发送文件给服务器
- 【1002】Eclipse安装(编程软件)、Eclipse创建第一Java项目、eclipse安装包
- 充值抖币显示苹果服务器异常,抖音充值抖币怎么充值不了
- 两个转子的转轮机原理详解与算法实现
- 互联网运营之道读书笔记
- 怎样在应用中实现自助报表功能?
- python 答题插件_大话西游答题器 Python版本
- html 如何完美的显示图片,不拉伸图片,完整显示等等。
- GB2312和BIG5,Unicode/UTF8等编码之间的互相转化
- wp10手机不能连接微软服务器,Lumia920手机更新10166版WP10后,无法用Microsoft账户登录,也无法添加Microsoft账 - Microsoft Community...
- vscode中!无法生成模板解决方案