您的位置:首页 > 运维架构 > Docker

Docker实战(十):Docker安装Nginx环境

2016-06-27 10:23 761 查看


Docker安装Nginx环境

安装Nginx可以选择直接使用ubuntu的apt-get install nginx命令来安装,这种安装方式最简单方便,但是Nginx的版本可能是比较老的版本,所以这里我选择编译安装的方式。

Nginx需要依赖下面3个包

gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ ) zlib-1.2.8.tar.gz
rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ ) pcre-8.37.tar.gz
ssl 功能需要 openssl 库 ( 下载: http://www.openssl.org/ ) openssl-1.0.1q.tar.gz

编译方式安装Nginx

<code class="hljs bash has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 下载nginx安装依赖的包</span>
$ wget http://zlib.net/zlib-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.2</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8</span>.tar.gz
$ wget http://www.openssl.org/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">source</span>/openssl-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>q.tar.gz
$ wget http://downloads.sourceforge.net/project/pcre/pcre/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8.37</span>/pcre-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8.37</span>.tar.gz
$ wget http://nginx.org/download/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>.tar.gz

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># nginx-1.8.0,pcre-8.37,zlib-1.2.8,openssl-1.0.1q这几个解压的文件夹是放在/temp文件夹下,nginx按照的目录是/software/nginx-1.8.0</span>
$ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cd</span> /temp/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>/
$ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">sudo</span> ./configure --sbin-path=/software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>/nginx --conf-path=/software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>/nginx.conf --pid-path=/software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>/nginx.pid --with-http_ssl_module --with-pcre=/temp/pcre-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8.37</span> --with-zlib=/temp/zlib-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.2</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8</span> --with-openssl=/temp/openssl-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>q
$ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">sudo</span> make
$ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">sudo</span> make install

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 检查80端口是否被占用</span>
$ netstat -ano|grep <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">80</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 启动nginx</span>
$ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cd</span> /software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>/
$ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">sudo</span> ./nginx

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 不指定配置文件地址</span>
$ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cd</span> /software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
$ ./nginx

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 指定配置文件地址</span>
$ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cd</span> /software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
$ ./nginx -c /software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>/nginx.conf

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 停止服务</span>
$ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">sudo</span> kill <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'cat /software/nginx-1.8.0/nginx.pid'</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 检测配置文件</span>
$ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cd</span> /software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
$ ./nginx -t

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 重新加载配置文件(不停止服务)</span>
$ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cd</span> /software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
$ ./nginx <span class="hljs-operator" style="box-sizing: border-box;">-s</span> reload</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li></ul>


编译安装Nginx可能会遇到的问题和解决方法

<code class="hljs vbnet has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 编译安装Nginx的时候需要指定相关参数,否则会遇到下面的问题</span>
./configure: <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">error</span>: the HTTP rewrite <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">module</span> requires the PCRE library.
You can either disable the <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">module</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">by</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">using</span> --without-http_rewrite_module
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">option</span>, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">or</span> install the PCRE library <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">into</span> the system, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">or</span> build the PCRE library
statically <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">from</span> the source <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> nginx <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">by</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">using</span> --<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-pcre=<path> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">option</span>.

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># Nginx编译参数</span>
–prefix                         <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#nginx安装目录,默认在/usr/local/nginx</span>
–pid-path                       <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pid问件位置,默认在logs目录</span>
–lock-path                      <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#lock问件位置,默认在logs目录</span>
–<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-http_ssl_module           <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#开启HTTP SSL模块,以支持HTTPS请求。</span>
–<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-http_dav_module           <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#开启WebDAV扩展动作模块,可为文件和目录指定权限</span>
–<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-http_flv_module           <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#支持对FLV文件的拖动播放</span>
–<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-http_realip_module        <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#支持显示真实来源IP地址</span>
–<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-http_gzip_static_module   <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#预压缩文件传前检查,防止文件被重复压缩</span>
–<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-http_stub_status_module   <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#取得一些nginx的运行状态</span>
–<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-mail                      <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#允许POP3/IMAP4/SMTP代理模块</span>
–<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-mail_ssl_module           <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#允许POP3/IMAP/SMTP可以使用SSL/TLS</span>
–<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-pcre=../pcre-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8.11</span>         <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#注意是未安装的pcre路径</span>
–<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-zlib=../zlib-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.2</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.5</span>        <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#注意是未安装的zlib路径</span>
–<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span>-debug                     <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#允许调试日志</span>
–http-client-body-temp-path     <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#客户端请求临时文件路径</span>
–http-proxy-temp-path           <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#设置http proxy临时文件路径</span>
–http-fastcgi-temp-path         <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#设置http fastcgi临时文件路径</span>
–http-uwsgi-temp-path=/var/tmp/nginx/uwsgi <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#设置uwsgi 临时文件路径</span>
–http-scgi-temp-path=/var/tmp/nginx/scgi <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#设置scgi 临时文件路径</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 我用pcre2替代了pcre会遇到如下的问题,最后还是换成pcre</span>
出现了错误:src/core/ngx_regex.h:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">15</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">18</span>: fatal <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">error</span>: pcre.h: No such file <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">or</span> directory
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include <pcre.h></span>
^
compilation terminated.
make[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>]: *** [objs/src/core/nginx.o] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">Error</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
make[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>]: Leaving directory `/home/ben/dev/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">'</span>
make: *** [build] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">Error</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 如果遇到下面的问题最好升级一下gcc</span>
$ sudo rm -rf /var/<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">lib</span>/apt/lists/*
$ apt-<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">get</span> update

configure: <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">error</span>: You need a C++ compiler <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> C++ support.
make[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>]: *** [/home/ben/dev/pcre-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8.37</span>/Makefile] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">Error</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
make[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>]: Leaving directory `/home/ben/dev/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">'</span>
make: *** [build] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">Error</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li></ul>


Dockerfile文件

<code class="hljs coffeescript has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">##</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># version : birdben/nginx:v1</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># desc : 当前版本安装的nginx</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">##</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 设置继承自我们创建的 tools 镜像</span>
FROM birdben/<span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">tools</span>:v1

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 下面是一些创建者的基本信息</span>
MAINTAINER birdben (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">191654006</span>@<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">163.</span>com)

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 设置环境变量,所有操作都是非交互式的</span>
ENV DEBIAN_FRONTEND noninteractive

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 添加 supervisord 的配置文件,并复制配置文件到对应目录下面。(supervisord.conf文件和Dockerfile文件在同一路径)</span>
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 安装升级gcc</span>
RUN sudo rm -rf <span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/var/lib/apt/lists/</span>*
RUN sudo apt-get update

RUN sudo apt-get -y install \
build-essential

RUN sudo mkdir -p /software/temp
RUN wget <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">http</span>:<span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">//</span>nginx.org/download/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>.tar.gz && tar -zxvf nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>.tar.gz -C /software/temp
RUN wget <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">http</span>:<span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">//</span>zlib.net/zlib-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.2</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.8</span>.tar.gz && tar -zxvf zlib-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.2</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.8</span>.tar.gz -C /software/temp
RUN wget <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">http</span>:<span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">//</span>www.openssl.org/source/openssl-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.1</span>q.tar.gz && tar -zxvf openssl-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.1</span>q.tar.gz -C /software/temp
RUN wget <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">http</span>:<span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">//</span>downloads.sourceforge.net/project/pcre/pcre/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8.37</span>/pcre-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8.37</span>.tar.gz && tar -zxvf pcre-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8.37</span>.tar.gz -C /software/temp
RUN cd /software/temp/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span> && sudo ./configure --sbin-path=/software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>/nginx --conf-path=/software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>/nginx.conf --pid-path=/software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>/nginx.pid --<span class="hljs-reserved" style="box-sizing: border-box;">with</span>-http_ssl_module --<span class="hljs-reserved" style="box-sizing: border-box;">with</span>-pcre=/software/temp/pcre-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8.37</span> --<span class="hljs-reserved" style="box-sizing: border-box;">with</span>-zlib=/software/temp/zlib-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.2</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.8</span> --<span class="hljs-reserved" style="box-sizing: border-box;">with</span>-openssl=/software/temp/openssl-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.1</span>q && sudo make && sudo make install

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 设置nginx是非daemon启动</span>
RUN echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'daemon off;'</span> >> /software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>/nginx.conf
RUN echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'master_process off;'</span> >> /software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>/nginx.conf
RUN echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'error_log  logs/error.log;'</span> >> /software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>/nginx.conf

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 设置 NGINX 的环境变量,若读者有其他的环境变量需要设置,也可以在这里添加。</span>
ENV NGINX_HOME /software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 容器需要开放Nginx 80端口</span>
EXPOSE <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">80</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 执行run.sh文件</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># CMD ["/run.sh"]</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 执行supervisord来同时执行多个命令,使用 supervisord 的可执行路径启动服务。</span>
CMD [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/usr/bin/supervisord"</span>]</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li></ul>


Dockerfile源文件链接:


https://github.com/birdben/birdDocker/blob/master/nginx/Dockerfile

注意

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 编译安装Nginx方式构建Docker镜像遇到几个比较坑的问题</span>
<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.</span> supervisor无法启动Nginx,必须设置nginx是非daemon启动,这个问题之前安装ES的时候已经遇到过了,因为没有注意还是被这个问题困扰了一段时间。Nginx设置非daemon启动需要在nginx<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.conf</span>配置文件中设置daemon false即可。
参考文章:
<span class="hljs-label" style="box-sizing: border-box;">http:</span>//comments<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.gmane</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.org</span>/gmane<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.comp</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sysutils</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.supervisor</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.general</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1233</span>
<span class="hljs-label" style="box-sizing: border-box;">http:</span>//nginx<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.org</span>/en/docs/ngx_core_module<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.html</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#daemon</span>
<span class="hljs-label" style="box-sizing: border-box;">http:</span>//serverfault<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.com</span>/questions/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">647357</span>/running-<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span>-monitoring-nginx-with-supervisord
<span class="hljs-label" style="box-sizing: border-box;">http:</span>//www<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.v</span>2ex<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.com</span>/t/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">123152</span>

<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.</span> 编译安装Nginx时,总是提示lib-dev64相对的版本不匹配,即使执行apt-get -<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">y</span> install build-essential安装gcc也是如此,最终发现是因为之前继承的tools镜像在安装ssh时有改过ubuntu的sourcelist文件,直接继承ubuntu <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">14.04</span>的镜像就不会有lib-dev64版本不匹配的问题。
参考文章:
<span class="hljs-label" style="box-sizing: border-box;">http:</span>//www<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.oschina</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.net</span>/question/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">220489</span>_160699
<span class="hljs-label" style="box-sizing: border-box;">http:</span>//www<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.cnblogs</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.com</span>/linxiong945/p/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4180565.</span>html
<span class="hljs-label" style="box-sizing: border-box;">http:</span>//blog<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.csdn</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.net</span>/xhz1234/article/details/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">37044531</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li></ul>


Supervisor.conf

<code class="hljs vala has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 配置文件包含目录和进程</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 第一段 supervsord 配置软件本身,使用 nodaemon 参数来运行。</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 第二段包含要控制的 2 个服务。每一段包含一个服务的目录和启动这个服务的命令。</span>

[supervisord]
nodaemon=<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">true</span>

[program:sshd]
command=/usr/sbin/sshd -D

[program:nginx]
command=/software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>/nginx -c /software/nginx-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>/nginx.conf</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li></ul>


控制台终端

<code class="hljs vala has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 构建镜像</span>
docker build -t=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"birdben/nginx:v1"</span> .
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 执行已经构件好的镜像</span>
docker run -p <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9999</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">22</span> -p <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8888</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">80</span> -t -i birdben/nginx:v1</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul>


浏览器访问

<code class="hljs cs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">http:<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//10.211.55.4:8888/</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>


参考文章
http://nginx.org/en/docs/configure.html
http://www.cnblogs.com/skynet/p/4146083.html
http://www.nginx.cn/install
http://www.cnblogs.com/siqi/p/3572695.html
https://www.nginx.com/resources/wiki/start/topics/tutorials/installoptions/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: