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运行 & 重启 & 进入镜像查看

  1. 在与docker-compose.yml文件平级目录下 执行 运行
    -d 代表后台运行

    docker-compose up -d
    
  2. docker-compose重启
    down: 命令将停止运行的容器,并且会删除已停止的容器以及已创建的所有网络。
    stop: 命令将停止运行的容器,但不会删除它们。

    docker-compose stop
    或
    docker-compose down
    
  3. 查看运行/已停止的 容器
    docker ps        查看正在运行的容器docker ps -a     查看正在运行和已停止的容器
    
  4. 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执行环境相关推荐

  1. 使用 Docker 搭建 Laravel 本地环境

    (原文地址:https://blog.tanteng.me/2017/...) Laravel 官方提供 Homestead 和 Valet 作为本地开发环境,Homestead 是一个官方预封装的 ...

  2. 什么是AWS Lambda?——事件驱动的函数执行环境

    AWS CTO Werner Vogels在AWS re:Invent 2014大会的第二场主题演讲上公布了两个新服务和一系列新的实例,两个新服务都相当令人瞩目:第一个宣布的新服务是Amazon EC ...

  3. Docker教程-深度学习环境配置

    最近在知乎上刷到一篇文章,标题很有意思叫<Docker,救你于「深度学习环境配置」的苦海>,感兴趣的可以去搜一下.那篇文章主要针对的是一个目前深度学习研究者的痛点:深度学习环境的配置.我在 ...

  4. docker+selenium web自动化测试环境的部署

    docker+selenium web自动化测试环境的部署 1.使用SecureCRT或Docker Quickstart Terminal打开docker终端. 2.下载selemiunUI测试需要 ...

  5. 怎么使用Docker搭建PHP开发环境呢?

    在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp.xampp.mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnm ...

  6. Docker最全教程之使用Docker搭建Java开发环境(十八)

    前言 Java是一门面向对象的优秀编程语言,市场占有率极高,但是在容器化实践过程中,发现官方支持并不友好,同时与其他编程语言的基础镜像相比(具体见各语言镜像比较),确实是非常臃肿. 本篇仅作探索,希望 ...

  7. Docker最全教程之使用Docker搭建Java开发环境

    前言 Java是一门面向对象的优秀编程语言,市场占有率极高,但是在容器化实践过程中,发现官方支持并不友好,同时与其他编程语言的基础镜像相比(具体见各语言镜像比较),确实是非常臃肿. Java [Jav ...

  8. docker php composer 使用_如何使用Docker部署PHP开发环境

    本文主要介绍了如何使用Docker构建PHP的开发环境,文中作者也探讨了构建基于Docker的开发环境应该使用单容器还是多容器,各有什么利弊.推荐PHP开发者阅读.希望对大家有所帮助. 环境部署一直是 ...

  9. 使用Docker高效搭建开发环境

    女主宣言 Docker 作为轻量级的基于容器的解决方案,它对系统侵入性低,容易移植,天生就适合做复杂业务部署和开发环境搭建,今天给大家带来的是我司开发是如何使用 Docker 高效搭建开发环境的.本文 ...

最新文章

  1. JAVA数组的定义及用法
  2. golag mysql_golang连接mysql操作示例增删改查
  3. 注解开发不方便_注解(上)
  4. win10之dlib安装 c++调用
  5. 【快乐水题】509. 斐波那契数
  6. jQuery源码研究分析学习笔记-回调函数(11)
  7. encodeURIComponent与encodeURI的区别
  8. PSIM软件学习---06 元件参数文件应用
  9. 系统理解Win32 API和MFC
  10. 虚拟机安装CentOS系统教程(详细)
  11. 2022-07-17 第四小组 孙翰章 职业规划
  12. 【Python数据处理篇——DataFrame数据准备】DataFrame的创建、增删改查、数据导入等
  13. ArrayIndexOutOfBoundsException: 4096 while reading gif file
  14. 嵌入式Linux系统开发入门宝典(第2版)
  15. 电机控制要点解疑:SPWM,SVPWM和矢量控制
  16. 个人作业Week3-案例分析
  17. Ortec -- 974A 四通道100-MHz计时器/计数器
  18. 3a企业信用等级证书怎么办理
  19. c语言怎么调用dll文件
  20. 遗传算法五大基本要素——参数编码、群体设定

热门文章

  1. 2010年中国网络游戏行业盘点 网吧成“过冬”避风港
  2. Vim编辑器的使用(2):文档编辑
  3. 使用 Three.js 的 3D 制作动画场景
  4. windows10装ubuntu16.04双系统完全版教程!!
  5. Prompt Engineering | 对话聊天prompt
  6. 3dmax模型批量导出结构
  7. python怎么切图片分解_巧用numpy切分图片
  8. 应用(接口)被刷的解决方案(接口防止机器刷数据的处理方案)
  9. Promise语法处理回调地狱
  10. 【Windows】右下角语言栏消失的显示方法