步骤一:手动安装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. 运维ip语法,DNS配置方法

    修改配置文件: /etc/resolv.conf nameserver DNS_IP_1 nameserver DNS_IP_2 nameserver 指定本机解析: /etc/hosts 主机IP ...

  2. 命令行窗口中使用pip安装第三方库成功之后,在pycharm中仍不能使用

    在学习廖老师的Python教程的时候,遇到命令行窗口中使用pip安装第三方库成功之后,在pycharm中仍不能使用的情况, 这种情况可能是由于在本地安装了多个Python版本的缘故(只是可能的情况之一 ...

  3. 201771010141 周强 面向对象程序设计(Java)第12周作业

    实验十二  图形程序设计 实验时间 2018-11-14 1.实验目的与要求 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: (2) 掌握Java GUI中2D图形绘制常用类的AP ...

  4. vue css背景图片打包后路径问题

    limit,代表如果小于大约4k则会自动帮你压缩成base64编码的图片,否则拷贝文件到生产目录 name,后面是打包后的路径: loader,后面 limit 字段代表图片打包限制,这个限制并不是说 ...

  5. 浅谈在java中list集合的排序问题

    定义实体类: public class Person { private Integer id; private String name; private Integer age; public In ...

  6. 【oracle入门】数据库系统范式

    为了规范关系数据模型,关系型数据库系统在设计时必须遵守一定的规则,这种规则成为关系型数据库范式. 1.第一范式1NF 如果字段中的值已经是无法再分割的值,则符合第一范式,即1NF. 2.第二范式2NF ...

  7. mysql 索引查询 、创建 create index 与 add index 的区别

    1.索引查询 ------TABLE_SCHEMA  库名:TABLE  表名 ------AND UPPER(INDEX_NAME) != 'PRIMARY'  只查询索引,不需要主键 SELECT ...

  8. spring源码1:基本概念

    一.预习 1.如何用spring?零配置(注解)或少配置,与应用无侵入性一起运行,与主流框架无缝集成. 2.spring 是什么?spring 是 java 企业应用级框架,目的是为了简化开发:主要体 ...

  9. 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior

    [论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...

  10. i3wm菜单

    抛弃i3-dmenu-desktop吧,投入到 j4-demu-desktop 速度超快