zoukankan      html  css  js  c++  java
  • docker:构建nginx+php-fpm镜像(一):构建nginx自启动镜像

    步骤一:手动安装nginx环境,并记录全过程:

    #使用yum更新系统
    yum -y update
     
    #下面编译安装tengine,查看有哪些包需要安装
    #安装wget包,用于获取安装软件包
    yum -y install wget
     
    cd /usr/local/src
    #下载nginx安装包,并指定放置目录/usr/local/src
    wget http://tengine.taobao.org/download/tengine-2.1.2.tar.gz -P /usr/local/src/
    #z匹配.gz  x解压 f本地
    tar -zxf tengine-2.1.2.tar.gz
     
    #创建nginx需要的用户和组
    groupadd -r nginx
    useradd -g nginx -M nginx
     
    #tengine初次编译
    ./configure --prefix=/usr/local/tengine
    --user=nginx --group=nginx
     
    #报错以及补充系统包:
    yum -y install gcc pcre-devel openssl-devel
     
    #初次编译通过,增加nginx模块配置再次编译:
    --with-http_realip_module  #nginx获取客户端真实IP的模块
    --with-http_sub_module  #用于替换网站页面关键字--平常基本没啥用
    --with-http_gzip_static_module  #静态缓存压缩,用于减少流量
    --with-http_gunzip_module  #为不支持gzip模块的客户端提供解压缩服务,用于节省空间减少IO
    --with-http_ssl_module  #使nginx支持https
    --with-pcre  #nginx支持pcre正则,主要是支持rewrite功能
    --with-http_stub_status_module #用于监控nginx状态
     
    完整编译命令如下:
     
    ./configure --prefix=/usr/local/tengine 
    --user=nginx --group=nginx 
    --with-http_realip_module 
    --with-http_gzip_static_module 
    --with-http_gunzip_module 
    --with-pcre 
    --with-http_stub_status_module 
    --with-http_ssl_module
    #编译安装
    make & make install
     
    #启动nginx
    /usr/local/tengine/sbin/nginx
     

    步骤二:根据以上步骤构建dockerfile生成nginx镜像

    Dockerfile
     
    ###################################################
    #Dockerfile to build mysqlDB container images
    #base on centos
    ###################################################
    #Set the base image to Centos6
    FROM centos:6
    #File Suthor
    MAINTAINER liujian@wanbu.com.cn
     
    #install basic rpm
    RUN yum -y update
    RUN yum -y install wget gcc pcre-devel openssl-devel
    RUN wget http://tengine.taobao.org/download/tengine-2.1.2.tar.gz -P /usr/local/src/ 
    && groupadd -r nginx && useradd -g nginx -M nginx
    RUN cd /usr/local/src/ 
    && tar -zxf tengine-2.1.2.tar.gz 
    && cd tengine-2.1.2/ 
    && ./configure --prefix=/usr/local/tengine --user=nginx --group=nginx --with-http_realip_module --with-http_gzip_static_module --with-http_gunzip_module --with-pcre --with-http_stub_status_module --with-http_ssl_module 
    && make && make install 
    && ln -s /usr/local/tengine/sbin/nginx /usr/sbin/nginx 
    && yum -y remove wget gcc pcre-devel openssl-devel
    ADD nginx.conf /usr/local/tengine/conf/
    EXPOSE 80
    CMD ["nginx","-g","deamon off;"]
     
    #制定Dokcerfile构建nginx镜像
    docker build -t nginx_test:v1.0 .
     
    #使用镜像创建容器,测试nginx运行情况
    docker run -itd -p 0.0.0.0:7788:80 --name nginx_image_test nginx_test:v1.0
     
    #访问正常,但是nginx配置文件无法修改,只能启动运行。
    如果在测试环境需要修改配置文件重启等,可以使用:
    #将dockerfile内部CMD ["nginx","-g","deamon off;"]替换为
    ENTRYPOINT /usr/sbin/nginx -c /etc/nginx/nginx.conf && /bin/bash
  • 相关阅读:
    好消息,不用替换文件,凯立德能用了
    开心网外挂开发之 XML序列化于反序列化
    开心网外挂开发之 Singleton 单件模式应用
    开心网外挂开发之 开篇
    新买的雷柏1800无线套装
    新年好!!!!!!!!!!!!!!!!!!!!!!!
    恩,我还在写代码
    VS2019安装MSDN离线文档
    xaf使用非持久化类(nonpersistent)来展示lookuplist和展示树结构
    My Record Series: (1.2) Windows Phone 7 Launchers and Choosers
  • 原文地址:https://www.cnblogs.com/liujian001/p/6525363.html
Copyright © 2011-2022 走看看