步骤一:手动安装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:
#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..tar.gz \
&& cd tengine-2.1./ \
&& ./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
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

docker:构建nginx+php-fpm镜像(一):构建nginx自启动镜像的更多相关文章

  1. docker:(2)通过Dockerfile构建镜像并发布web项目

    上一篇讲解了docker的基本使用 http://www.cnblogs.com/xiaochangwei/p/8204511.html 虽然通过修改获取到的镜像可以达到使用目的,但是多操作几次就会发 ...

  2. Docker镜像的构建(五)

    目录 构建镜像 1.使用 commit 命令构建 1.1 运行一个要进行修改的容器 1.2 安装 Apache 软件包 1.3 提交定制容器 2.使用 Dockerfile 构建 2.1 我们的第一个 ...

  3. Docker学习笔记(2):使用Dockerfile构建镜像

    Dockerfile是用来构建Docker镜像的文件,是由一系列命令和参数构成的脚本.每条指令都必须为大写字母且后面要跟随至少一个参数,每条指令都会创建一个新的镜像层,并对镜像进行提交. Docker ...

  4. Docker Buildx使用教程:使用Buildx构建多平台镜像

    写在前边 记录一下前阵子在X86_64平台使用Docker Buildx构建多平台镜像的办法,包含但不限于构建ARM镜像. 构建环境 软件名 版本 Ubuntu 18.04.2 LTS Docker ...

  5. 基于docker+etcd+confd + haproxy构建高可用、自发现的web服务

    基于docker+etcd+confd + haproxy构建高可用.自发现的web服务 2016-05-16 15:12 595人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主 ...

  6. Docker基本命令与使用 —— Dockerfile指令与构建(三)

    一.Dockerfile指令上 1.指令格式 # Comment 注释, 以#开头 INSTRUCTION argument 以大写的指令+参数 #First Dockerfile 注释 FROM u ...

  7. ubuntu docker安装与部署java,mysql,nginx镜像

    docker 安装与部署java,mysql,nginx docker 配置 安装docker $ sudo apt-get remove docker docker-engine docker.io ...

  8. windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...

  9. docker创建自己的镜像并配置nginx

    前言 最近在研究docker,记录一下如何创建一个属于自己的镜像 本次使用linux版本为centos7.4(centos6也可以使用docker,只不过有部分功能只有7才有) 本次创建的镜像为cen ...

  10. ASP.NET Core 实战:使用 Docker 容器化部署 ASP.NET Core + MySQL + Nginx

    一.前言 在之前的文章(ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路)中,我介绍了如何在 Linux 环境中安装 .NET Core SDK / .NET Core ...

随机推荐

  1. 2018-2019-2 《网络对抗技术》Exp2 后门原理与实践 Week3 20165326

    Exp2 后门原理与实践 目录 1. 实验原理 2. 实验内容 3. 问题回答 4. 心得体会 实验原理简介 后门:不经过正常流程而访问系统的通道 ncat:底层工具,进行基本的TCP UDP数据收发 ...

  2. TSMBIOS

    TSMBIOS Object Pascal language (Delphi or Free Pascal). https://github.com/RRUZ/tsmbios

  3. pycharm中字体大小的调整方法

    一.file->settings->editor->font->size 二.file中键入mouse,在其下editor->general->mouse选中:ch ...

  4. Windows10 VS2017 C++模拟点击按键

    #include "pch.h" #include <Windows.h> #include <stdio.h> #include <iostream ...

  5. Ubuntu文件系统

    (). 关于Linux中的文件: (). 在Linux系统中, 一切都是文件 : 所有数据都是文件,包括设备. (). 最小的数据存储单元也是文件. (). 文件系统: 文件系统就是文件的组织和管理方 ...

  6. MT4 取K线

    目标:动态获取最新K线并通过DLL发送出去,symbols和periods可配置. //+------------------------------------------------------- ...

  7. parallel::ForkManager

    use Parallel::ForkManager; my $MAX_PROCESSES=10;   #申明最大进程数(一次创建的进程越多,越耗内存): my $pm = new Parallel:: ...

  8. Dart 中dynamic 的使用

    void main(){ var a; a=10; b ="Dart"; dynamic b =20; b ="JavaScript" var list =ne ...

  9. 在typeScript+vue项目中使用ref

    因为vue项目是无法直接操作dom的,但是有时候开发需求迫使我们去操作dom. 两个办法,一个是很low的再引入jq,然后通过jq来操作,但是这样就失去了我们使用vue的意义, 可惜的是我曾经这样干过 ...

  10. ccf-集合竞价-201412-3

    这道题数据量很小,所以用前缀和直接暴力解决了 首先将浮点数转换为整数; int_p=(int)(dou_p*100+0.5); 必须加一个eps,否则浮点数运算会有误差 然后从高到低枚举 #inclu ...