docker-yaf环境

docker php8.1+nginx base 镜像 dockerfile 配置 这个是docker 配置的base dockerfile 如果搭建php+nginx 环境,可以直接使用这个dockerfile配置。直接在你代码里面的dockerfile 引用此基础镜像。base 镜像编辑好后,可以上传到阿里云的免费的镜像容器服务。/home/data/dockerfile/prod/Dockerfile 是dockerfile 文件路径。# 启动 PHP-FPM 和 Nginx 服务。# 使用官方的 PHP 镜像作为基础镜像。# 暴露容器的 80 和 443 端口。 阅读详情

背景

博主多年一直使用vm虚拟机开发(一套环境走天下),近日听闻docker这门技术,发现好处不少

  • 极其轻量体积小
  • 运行速度极快
  • 资源丰富,你能想到的容器别人都共享了
  • 部署简单,本地和线上的环境不一致引起的问题再也不用担心。
    玩转之。

安装

centos7下安装

环境检测

目前,CentOS 仅发行版本中的内核支持 Docker。
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本

//命令查看你当前的内核版本 
uname -r  

安装

//yum安装
yum -y install docker 
//启动docker服务
systemctl start docker 
//查看docker版本
docker -v     

测试

由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。

docker run hello-world

看到输出说明docker安装成功

镜像加速设置

由于众所周知的原因,docker国外源速度不快,所以这边我们使用ali的源,当然你可以选择其它的源。
ali的源需要先去https://cr.console.aliyun.com/注册,会得到一个加速的个人连接,注册相关请自行百度。

vim /etc/docker/daemon.json:
{
  "registry-mirrors": ["https://yt3uvnue.mirror.aliyuncs.com"]
}
//重启使配置生效
systemctl restart docker

制作自己的镜像(lnmp)

几个概念

  • 镜像和容器的概念:
  • 镜像可以当成安装系统的ISO文件
  • 容器就是安装好可使用的系统

博主出于研究学习,并没有采用别人配好的镜像文件,而是pull了最简单的版本,自己配置相关环境,制作一个全新的个人镜像。

安装nginx容器

//查看有哪些nginx的镜像可以使用
docker search nginx
//检出nginx官方镜像
docker pull nginx
//建立对应的目录
mkdir docker
cd docker
mkdir -p $PWD/nginx/www $PWD/nginx/logs $PWD/nginx/conf $PWD/nginx/conf/conf.d
cd ~
//下面运行最简单的nginx镜像
docker run -p 8000:80 --name mynginx -d nginx 
//查看容器是否启动
docker ps
//进入容器找到nginx.conf目录及html目录
docker exec -it mynginx /bin/bash
//退出容器
exit
//切换目录
cd nginx
//拷贝nginx.conf
docker cp mynginx:/etc/nginx/nginx.conf ./conf/nginx.conf
docker cp mynginx:/etc/nginx/conf.d/default.conf ./conf/conf.d/default.conf
//停止容器服务
docker stop mynginx
//删除容器
docker rm 容器ID (docker ps -a 查询)
//生成新容器并映射相关的目录和文件
docker run -p 80:80 --name mynginx -v $PWD/www:/usr/share/nginx/html -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v $PWD/logs:/var/log/nginx -d nginx

安装php容器

//搜索php镜像
docker search php
//下载php56官方镜像
docker pull php:5.6-fpm
//准备好相关的目录
cd docker
mkdir -p $PWD/php-fpm/logs $PWD/php-fpm/conf
//运行php容器
//注意在/usr/local/etc/php目录下放好一份php.ini文件,官网php镜像没有php.ini
docker run -p 9000:9000 --name  myphp -v $PWD/nginx/www:/var/www/html -v $PWD/php-fpm/conf:/usr/local/etc/php -v $PWD/php-fpm/logs:/phplogs -d php:5.6-fpm

nginx与php

//查看php容器IP
docker inspect 容器ID或容器名 |grep '"IPAddress"'
//编辑nginx配置
vi /nginx/conf/conf.d/default.conf:

1.png

//重启nginx容器
docker restart mynginx

安装yaf

官方docker镜像安装扩展已有工具

//进入php容器
docker exec -it myphp /bin/bash
//切换安装工具目录
cd /usr/local/bin  
//安装mysql扩展
./docker-php-ext-install pdo_mysql  
//安装yaf扩展
./docker-php-ext-install yaf
//也可以自己下载好yaf包,拷贝进容器内,执行编译安装
//查看是否安装成功
php -m 

容器打包push

打包

容器打包成镜像:
先注册https://hub.docker.com (需要科学上网),自行百度

//打包,注意最后XXX必须为你的用户名
docker commit 容器ID  XXX/nginx 
//修改tag
//docker 容器ID XXX/nginx:latest (latest为版本,自行设置)
//登录dockerhub
docker login
docker push XXX/nginx

push的一些问题

博主使用dockerhub库的过程中,有天突然发现pull操作正常,push却报错“net/http: TLS handshake timeout”,谷歌之,都在讲墙的原因,需要加上加速服务,博主换了163,ali等等一圈,发现并没解决问题,另外提醒一下各位,国内的daocloud push操作只对收费会员开放。最后,博主,注册了ali的镜像仓库服务(免费),push成功,ali镜像仓库官方教程很全面,我这边就不赘述了。

关于docker-compose

上面一顿操作,服务是配好了,同时也感觉很累,毕竟搭建这么一套简单lnmp都这么多命令,能不能有种工具可以帮我们?
docker-compose登场。只需一个yml文件,即可快速制作镜像。

安装

https://github.com/docker/compose/releases/下载最新
curl -L https://github.com/docker/compose/releases/download/1.20.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

创建必要的目录结构和文件

dir docker
cd docker
mkdir -p $PWD/nginx/www $PWD/nginx/logs $PWD/nginx/conf $PWD/nginx/conf/conf.d
mkdir -p $PWD/php-fpm/logs $PWD/php-fpm/conf

//准备好/nginx/conf/nginx.conf和/nginx/conf/conf.d/default.conf
nginx.conf:

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}

default.conf:

server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    if (!-e $request_filename) {
        rewrite ^/(.*)  /index.php?$1 last;
    }
    location ~ \.php$ {
        #此处注意,是php容器内的代码目录,所以不是/usr/share/nginx/html;
        root           /var/www/html;
        #这里testphp是php容器的服务名,不写IP,因为IP会变
        fastcgi_pass   testphp:9000;  
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
        include        fastcgi_params;
    }
}   

编写yml文件

编写vim docker/docker-compose.yml:

###指定撰写文件格式版本:1,2,3(最新)
version: '2.1'
services:
    testnginx:           #给容器一个名称
      image: XXX/nginx   #此处填写你之前push的镜像名
      volumes:           #此处为映射目录
          - ./nginx/www:/usr/share/nginx/html
          - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
          - ./nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf
      ports:             #映射IP
          - "80:80"
      container_name: testnginx   #容器名称
      depends_on:                 #容器依赖项,说明nginx依赖php,会先启动php
          - testphp
      links:
          - testphp

    testphp:
      image: XXX/php
      volumes: 
          - ./nginx/www:/var/www/html
          - ./php-fpm/conf:/usr/local/etc/php
          - ./php-fpm/logs:/phplogs
      ports:
          - "9000:9000"
      container_name: testphp    

几个注意点

如果你制作的镜像全部push成功,那么你只需保存好你的源码目录和docker-compose.yml文件,下次执行

docker-compose up -d

即可运行
当然,相关目录和yml也可托管到git
最后善用提醒,上传镜像前最好检查好权限:

  1. 在你使用的docker镜像平台上区分好镜像是否开放给别人下载
  2. 除非部署自用,否则push前请删除镜像内的逻辑代码,有效减少镜像体积,同时也能保证泄露

请关注我的订阅号

订阅号.png

docker-php-yaf:用于构建 php yaf 框架的 Dockerfile docker-php-yaf 在 docker 镜像中构建 php yaf 框架, 这对 Windows 开发环境中的开发人员很有用 ##要求 码头工人 ##usage 运行一个 php-fpm 控制器: docker run -p 8881:80 -it leozvc/docker-php-yaf 或在后台运行: docker run -p 8881:80 -d leozvc/docker-php-yaf 默认索引页是 phpinfo。 您可以将卷挂载到工作目录: docker run -p 8881:80 -v $your_workdir:/data/workdir -d leozvc/docker-php-yaf 支持的标签 见: : 更多的 获取更多信息: : 什么是雅夫? Yaf 是用 c 编写的 PHP 框架,并作为 PHP 扩展构建。 git 立即下载

相关推荐

php7.1 yaf扩展

php最新版7.1的yaf扩展。用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存. 更短的内存周转周期, 提高内存利用率, 降低内存占用率. 灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享. 高性能的视图引擎. 高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等. 内建多种路由, 可以兼容目前常见的各种路由协议. 强大而又高度灵活的配置文件支持. 并支持缓存配置文件, 避免复杂的配置结构带来的性能损失. 在框架本身,对危险的操作习惯做了禁止. 更快的执行速度, 更少的内存占用.

docker安装yaf扩展并发布

docker安装yaf扩展 参考 Docker 安装 PHP+nginx 一文观看 官方docker镜像安装扩展已有工具 //进入php容器 docker exec -it myphp /bin/bash //切换安装工具目录 cd /usr/local/bin //安装mysql扩展 ./docker-php-ext-install pdo_mysql //安装yaf扩展 ./docke...

zjc348的博客 1321

PHP扩展框架之Yaf框架的安装与使用

主要介绍了PHP扩展框架之Yaf框架的安装与使用的相关资料,具有参考借鉴价值,需要的朋友可以参考下

windows下使用docker搭建yaf,swoole,pdo环境

安装wsl,掠过 安装docker Docker Desktop 官方下载地址:Install Docker Desktop on Windows | Docker Documentation 安装yaf,swoole环境 1.powershell中运行,拉取phpswoole的镜像 docker pull phpswoole/swoole 2.启动容器(运行一个9501端口,名称为swoole_test的镜像,代码本地地址为:d/code/docker_test,docker代码地...

yishiwucheng的专栏 1727

Cisco Packet Tracer 7.3免登录技巧:3种方法快速跳过注册界面(附详细截图)

本文针对Cisco Packet Tracer 7.3启动时遇到的登录界面问题,提供了三种合法高效的解决方案。详细介绍了如何利用官方访客模式快速启动、注册思科账号实现一劳永逸登录,以及通过调整本地安装配置优化启动流程,帮助网络学习者与备考者绕过繁琐步骤,快速进入实验环境。

weixin_29305337的博客 737

从 JDK8 到 JDK17:CRMEB 框架升级

【摘要】CRMEB开源框架已成功从JDK8升级至JDK17,带来显著性能提升:并发吞吐量提高35%,响应延迟降低40%,资源占用减少25%。升级方案解决87个技术卡点,支持模块化扩展和微服务转型,兼容SpringBoot3.0等新技术。提供基础版到企业级的升级服务,包含代码重构指导和性能调优。经金融级验证的方案可帮助电商平台实现日均10万+UV承载,支付成功率提升至99.7%。现以低于市场30%的价格提供全周期技术支持,助力企业抢占技术先机。

weixin_39782540的博客 699

alpine/php docker镜像下安装yaf

cd /usr/local/bin  ./docker-php-ext-install yaf

c8621的博客 1176

在PyCharm中配置使用Anaconda环境

在PyCharm中配置使用Anaconda环境一、步骤1.Anaconda2.PyCharm总结 一、步骤 1.Anaconda 如未安装Anaconda可至其官网下载,学习使用个人版就可以了。 下载地址:https://www.anaconda.com/products/individual 1、打开Anaconda Navigator,点击Environments可以看到anaconda中已经有了默认的“base”环境,其中包含了大多数我们会用到的包,在PyCharm中可以直接使用该环境,而无需自行下载

TuckX的博客 19万+

Yaf 扩展安装

为了更好的演示 yaf 的安装过程,这里采用 docker 下的 php 镜像,进行操作,关于如何安装 php,如何使用 docker 等不在本次操作范围内。两种安装方式pecl 安装pecl install yaf配置 php.ini(可通过 php –ini 查找 php.ini 所在位置),开启 yaf 扩展echo 'extension=php_yaf.so' >> php.ini如果支持扫

大事龙 4448

VMware虚拟机的安装教程

VMware 虚拟机的备份与恢复是保障数据安全和业务连续性的重要措施。综上所述,VMware 虚拟机的备份与恢复策略有多种选择,企业和用户可以根据实际需求和资源情况选择适合自己的方案,以确保虚拟机数据的安全和业务的连续性。

huanghm88的专栏 2938

新能源车主必看:用高德API+充电站数据制作跨城出行充电规划工具(附完整代码)

本文为新能源车主提供了一份详细的跨城出行充电规划工具构建指南。通过整合高德地图API与充电站数据,手把手教你使用Python开发一个智能规划系统,可自动规划路线并推荐沿途充电站,有效缓解里程焦虑。文章包含完整代码、核心算法解析及可视化实现,帮助车主实现个性化、高效的出行规划。

tgb3456789的博客 898

php7 yaf环境部署,GitHub - helei112g/docker-env: 使用Docker搭建的PHP7的开发环境,支持Phalcon、Yaf等C语言框架...

Docker搭建的PHP7开发环境。EnvPHP 7.2.6Redis 3.2.11MySql 5.7.22Nginx 1.14.0PHP ExtensionsPhalcon 直接可使用该镜像用于该框架的开发工作Yaf 直接可用于开发Yaf框架项目Redis 扩展igbinary 扩展,更高效的序列化函数xdebug 扩展,方便调试Install获取项目git clone git@github.c...

weixin_32254267的博客 258

从毫K级温控到分子级洁净:光刻机环境控制系统的技术演进与专利格局

摘要 光刻机环境控制系统是半导体制造中的"隐形精密工程",通过毫K级温度控制(±0.002℃)、超高洁净度(ISO Class 1)等核心技术为纳米级光刻提供环境保障。本文系统分析了温度、湿度、洁净度、流场和压力控制五大技术方向的发展趋势,揭示了从单参数控制向多参数协同智能控制的转型路径。研究显示:1)温度控制正从PID向神经网络智能控制演进;2)EUV光刻将湿度控制推至ppbv级;3)洁净度控制扩展到分子级污染物管理。头部厂商中,ASML侧重系统集成,Nikon专注浸没流场,Canon

huanghm88的专栏 310

mac php yaf 安装,docker 中给php5.6安装yaf扩展的问题

问题描述自己想在docker中搭建php5.6环境,在尝试安装yaf扩展时候报错下面是我的Dockerfile文件内容FROM php:5.6-fpmCOPY src/ /var/www/html/COPY ext /php_ext #下载好的pecl包问题出现的环境背景及自己尝试过哪些方法执行build命令生成镜像之后启动镜像,进入bash下执行apt-get update -y &a...

weixin_39879122的博客 345

量化之趋势跟踪策略

趋势跟踪策略 import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import seaborn as sns from finance import GetData import warnings; warnings.filterwarnings('ignore') data = GetData.get_data('../data/002236.csv') .

木头大左的博客 2533

RK3588网卡出现丢包或者带宽不足的问题验证排查

注意除了有最大的TCP数据接收缓冲,还有/proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲可以调整,这里暂时没用到,针对具体需要可适当调整。比如把ethx接口中断从默认的cpu0迁移到其它cpu,例如将eth0中断234移到cpu7 (10是16进制, cpu0 =3588的cpu有8个核,4个A55(小核)+4个A76(大核),可以找到对应中断 将中断从默认cpu0核切到cpu7。tcp_rmem:单位是字节,接收缓存区大小,缓存从对端接收的数据,后续会被应用程序读取。

Android/Linux驱动开发传帮带学习,让驱动入门门槛更低! 2026

玩转docker 自定义Dev环境

docker其实比之前想象的要简单,下载你想要的服务镜像,用 docker run 生成一个容器,当你基础环境都ok的时候,docker commit 命令保存你新的自定义镜像,我需要的是centos中集成的lnmp,要求php >= 7.2,并开启以下扩展。 extension = yaf.so extension = swoole.so extension = mongodb.so extension = redis.so extension = trie_filter.so extension

stark张宇 3681

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

有没有php yaf的docker镜像,基于基础镜像打个业务应用的Dockerfile(php-fpm + redis3.0 + Yaf框架 + Memcached + mongo)...

由网络副手--寻路人于2017.09.26 17:58:00发布在PHP代码基于基础镜像打个业务应用的Dockerfile(php-fpm + redis3.0 + Yaf框架 + Memcached + mongo)阅读2071评论0喜欢0FROM bravedu/php-fpm:7.1.8MAINTAINER duchaoqun "duchaoqun@360.cn"ENV REFRESH...

weixin_42301413的博客 157

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Yaf框架在window上的配置

yaf框架在widows上的配置方式

underclound的博客 1630

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

CENTOS上的网络安全工具(二十八)SPARK+NetSA Security Tools容器化部署(4)

在一长串努力的基础上,现在我们应该可以构建较为完整的数据预处理到分析的流程了。下面我们从单容器开始,逐步构建集群化的数据处理分析环境——当然这个环境仍然是初步的,我们暂时还只能将其限制在对pcap文件的批量导入处理上。毕竟,还有好多东西我们尚未涉足。

lhyzws的专栏 896

CENTOS上的网络安全工具(二十六)SPARK+NetSA Security Tools容器化部署(2)

介绍NetSA工具集 yaf + super mediator + mothra的安装部署方法,实现数据流、DPI信息的大数据分析平台构建。

lhyzws的专栏 4853

docker 搭建 lnmp 环境

这几天学了 docker 又用 docker 搭建了自己的环境。这中间遇到了很多坑,为此特意写此博文,供你们搭建环境的时候借鉴。 本篇本章默认你有 docker 的基本知识 本篇用到的环境 主机 window 10 docker 18.03.1 php-fpm 7.2.8 nginx 1.15 mysql 5.7 实践 搭建 Dockerfile 首先我们编写我们的...

徐小鹏的博客 2200

PHP容器安装yaf,Docker安装php安装yaf扩展

Dockerfile文件内容:# 从官方基础版本构建FROM php:7.3.7-fpm# 官方版本默认安装扩展:# Core, ctype, curl# date, dom# fileinfo, filter, ftp# hash# iconv# json# libxml# mbstring, mysqlnd# openssl# pcre, PDO, pdo_sqlite, Phar, posi...

weixin_36156325的博客 259

lnmp 环境下搭建yaf扩展

命令: wget 地址参考图片 命令: tar zxvf yaf-2.3.5.tgz 命令: cd yaf-2.3.5 生成configure,命令: phpize 配置命令: ./configure --with-php-config=/usr/bin/php-config 进行编译安装 sudo make && make

prient的博客 869
上一篇: apache虚拟域名配置
下一篇: web常见攻防
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值