docker构造php执行环境
docker构造php执行环境
该文章只对于有docker基础经验的人且是小白... 如果没有docker经验或大神级别的 那么请跳过
文章树状结构解析
docker_nginx_php
│ docker-compose.yml --- compose配置,创建docker容器
│ Dockerfile --- 构建docker镜像配置
│
└─nginx --- nginx配置文件夹├─conf --- 配置文件存放位置│ └─conf.d --- 配置文件存放位置│ default.conf --- 初始化配置│├─log --- log文件存放位置└─www --- 项目文件存放位置
docker-compose文件编写
version: "3"
services:# redis镜像redis:image: redis:latestcontainer_name: redis_composeports:- 6379:6379# php运行环境php:image: php7.3container_name: php_composeprivileged: trueports:- 9000:9000# 本地文件映射到docker镜像里面volumes:- /f/allProject:/var/www/html# nginx镜像nginx:image: nginx:latestcontainer_name: nginx_compose# 映射端口 local访问9191映射80端口ports:- 9191:80# nginx配置文件映射到docker里面volumes:- /f/docker-nginx-php/nginx/conf/conf.d:/etc/nginx/conf.d- /f/allProject:/var/www/htmllinks:- php- redis
Dockerfile文件编写
# Version 1.0
FROM php:7.3-fpm
# 维护者信息
MAINTAINER qizaictt@qq.com
# 对外展示端口
EXPOSE 9000
# 更新软件源
RUN apt-get update
# 安装zip扩展所需的依赖扩展
RUN apt-get install -y zlib1g-dev
RUN apt-get install -y libzip-dev
# 安装GD扩展
RUN apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev
RUN docker-php-source extract
RUN cd /usr/src/php/ext/gd
RUN docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2
RUN docker-php-ext-install gd
# 安装Mysql
RUN docker-php-ext-install pdo_mysql
# 安装Redis
RUN pecl install redis
RUN docker-php-ext-enable redis
# 安装Openssl
RUN apt-get install openssl
default.conf文件编写
server {listen 80;server_name localhost;#charset koi8-r;location / {root #docker里面的项目文件夹 例如: /var/www/html/.... ;index index.php index.html index.htm;# 如果没有以下4行,laravel将只能访问首页,其他页面都是404try_files $uri $uri/ /index.php?$query_string;if (!-e $request_filename){ rewrite ^/(.*) /index.php last; }}error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}location ~ \.php$ {root #docker里面的项目文件夹 例如: /var/www/html/.... ;index index.php index.html;# 坑在这里,需将原有的127.0.0.1:9000 替换成 php_compose:9000 因为container_namefastcgi_pass php_compose:9000; fastcgi_index index.php;# 下面这行也改了 中间的$document_rootfastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}###################有新增加的项目 就增加server{}###################
docker运行 & 重启 & 进入镜像查看
- 在与docker-compose.yml文件平级目录下 执行 运行
-d 代表后台运行docker-compose up -d
- docker-compose重启
down: 命令将停止运行的容器,并且会删除已停止的容器以及已创建的所有网络。
stop: 命令将停止运行的容器,但不会删除它们。docker-compose stop 或 docker-compose down
- 查看运行/已停止的 容器
docker ps 查看正在运行的容器docker ps -a 查看正在运行和已停止的容器
- docker-compose运行的项目 进入容器查看(文件夹是否映射等…)
docker exec -it 镜像id/name /bin/bash
注意:localhost是nginx配置里面的server_name,且9191端口是compose文件里面的映射关系
那么此时在浏览器上输入localhost:9191
就能打开看到你的php项目了
修改windows下的hosts文件
hosts文件路径: C:\Windows\System32\drivers\etc
注意: 修改hosts文件需要权限, 可以复制到桌面修改完成后覆盖原有的即可
#增加一行映射127.0.0.1
127.0.0.1 对应的你在nginx配置里面的server_name
127.0.0.1 ...可添加多个
docker构造php执行环境相关推荐
- 使用 Docker 搭建 Laravel 本地环境
(原文地址:https://blog.tanteng.me/2017/...) Laravel 官方提供 Homestead 和 Valet 作为本地开发环境,Homestead 是一个官方预封装的 ...
- 什么是AWS Lambda?——事件驱动的函数执行环境
AWS CTO Werner Vogels在AWS re:Invent 2014大会的第二场主题演讲上公布了两个新服务和一系列新的实例,两个新服务都相当令人瞩目:第一个宣布的新服务是Amazon EC ...
- Docker教程-深度学习环境配置
最近在知乎上刷到一篇文章,标题很有意思叫<Docker,救你于「深度学习环境配置」的苦海>,感兴趣的可以去搜一下.那篇文章主要针对的是一个目前深度学习研究者的痛点:深度学习环境的配置.我在 ...
- docker+selenium web自动化测试环境的部署
docker+selenium web自动化测试环境的部署 1.使用SecureCRT或Docker Quickstart Terminal打开docker终端. 2.下载selemiunUI测试需要 ...
- 怎么使用Docker搭建PHP开发环境呢?
在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp.xampp.mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnm ...
- Docker最全教程之使用Docker搭建Java开发环境(十八)
前言 Java是一门面向对象的优秀编程语言,市场占有率极高,但是在容器化实践过程中,发现官方支持并不友好,同时与其他编程语言的基础镜像相比(具体见各语言镜像比较),确实是非常臃肿. 本篇仅作探索,希望 ...
- Docker最全教程之使用Docker搭建Java开发环境
前言 Java是一门面向对象的优秀编程语言,市场占有率极高,但是在容器化实践过程中,发现官方支持并不友好,同时与其他编程语言的基础镜像相比(具体见各语言镜像比较),确实是非常臃肿. Java [Jav ...
- docker php composer 使用_如何使用Docker部署PHP开发环境
本文主要介绍了如何使用Docker构建PHP的开发环境,文中作者也探讨了构建基于Docker的开发环境应该使用单容器还是多容器,各有什么利弊.推荐PHP开发者阅读.希望对大家有所帮助. 环境部署一直是 ...
- 使用Docker高效搭建开发环境
女主宣言 Docker 作为轻量级的基于容器的解决方案,它对系统侵入性低,容易移植,天生就适合做复杂业务部署和开发环境搭建,今天给大家带来的是我司开发是如何使用 Docker 高效搭建开发环境的.本文 ...
最新文章
- JAVA数组的定义及用法
- golag mysql_golang连接mysql操作示例增删改查
- 注解开发不方便_注解(上)
- win10之dlib安装 c++调用
- 【快乐水题】509. 斐波那契数
- jQuery源码研究分析学习笔记-回调函数(11)
- encodeURIComponent与encodeURI的区别
- PSIM软件学习---06 元件参数文件应用
- 系统理解Win32 API和MFC
- 虚拟机安装CentOS系统教程(详细)
- 2022-07-17 第四小组 孙翰章 职业规划
- 【Python数据处理篇——DataFrame数据准备】DataFrame的创建、增删改查、数据导入等
- ArrayIndexOutOfBoundsException: 4096 while reading gif file
- 嵌入式Linux系统开发入门宝典(第2版)
- 电机控制要点解疑:SPWM,SVPWM和矢量控制
- 个人作业Week3-案例分析
- Ortec -- 974A 四通道100-MHz计时器/计数器
- 3a企业信用等级证书怎么办理
- c语言怎么调用dll文件
- 遗传算法五大基本要素——参数编码、群体设定
热门文章
- 2010年中国网络游戏行业盘点 网吧成“过冬”避风港
- Vim编辑器的使用(2):文档编辑
- 使用 Three.js 的 3D 制作动画场景
- windows10装ubuntu16.04双系统完全版教程!!
- Prompt Engineering | 对话聊天prompt
- 3dmax模型批量导出结构
- python怎么切图片分解_巧用numpy切分图片
- 应用(接口)被刷的解决方案(接口防止机器刷数据的处理方案)
- Promise语法处理回调地狱
- 【Windows】右下角语言栏消失的显示方法