Docker容器内部安装Nginx

1、下载依赖包和Nginx

 wget http://zlib.net/zlib-1.2.11.tar.gz
 wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz
wget http://nginx.org/download/nginx-1.8.0.tar.gz

2、解压缩并按照openssl开发包
[root@7e0590732abb ng]# ll
total 9060
-rw-r--r--. 1 root root 832104 Apr 21 2015 nginx-1.8.0.tar.gz
-rw-r--r--. 1 root root 5365054 May 25 13:09 openssl-1.0.2l.tar.gz
-rw-r--r--. 1 root root 409600 Jul 4 13:42 pcre-8.38.tar.gz
-rw-r--r--. 1 root root 2053336 Jan 12 2016 pcre-8.38.tar.gz.1
-rw-r--r--. 1 root root 607698 Jan 15 18:13 zlib-1.2.11.tar.gz

[root@7e0590732abb ng]# tar -zvxf openssl-1.0.2l.tar.gz
[root@7e0590732abb ng]# tar -zvxf pcre-8.38.tar.gz
[root@7e0590732abb ng]# tar zvxf zlib-1.2.11.tar.gz
[root@7e0590732abb ng]# tar -zvxf nginx-1.8.0.tar.gz
[root@7e0590732abb ng]# ll
total 8676
drwxr-xr-x. 8 1001 1001 4096 Apr 21 2015 nginx-1.8.0
-rw-r--r--. 1 root root 832104 Apr 21 2015 nginx-1.8.0.tar.gz
drwxr-xr-x. 21 root root 4096 Jul 4 13:55 openssl-1.0.2l
-rw-r--r--. 1 root root 5365054 May 25 13:09 openssl-1.0.2l.tar.gz
drwxr-xr-x. 7 1169 1169 4096 Nov 23 2015 pcre-8.38
-rw-r--r--. 1 root root 2053336 Jan 12 2016 pcre-8.38.tar.gz
drwxr-xr-x. 14 501 games 4096 Jan 15 17:36 zlib-1.2.11
-rw-r--r--. 1 root root 607698 Jan 15 18:13 zlib-1.2.11.tar.gz

安装openssl开发包:

[root@7e0590732abb include]# yum -y install openssl-devel 

3、安装make工具,后面编译安装时会用到。
[root@7e0590732abb nginx-1.8.0]# yum -y install make
configure: error: You need a C++ compiler for C++ support.
make[1]: * [/ng/pcre-8.38/Makefile] Error 1
make[1]: Leaving directory `/ng/nginx-1.8.0'
make: * [build] Error 2

4、在安装make时提示需要安装C++
[root@7e0590732abb nginx-1.8.0]# yum -y install gcc gcc-c++

5、编译安装
[root@7e0590732abb nginx-1.8.0]# ./configure --sbin-path=/ng/nginx-1.8.0/nginx --conf-path=/ng/nginx-1.8.0/nginx.conf --pid-path=/ng/nginx-1.8.0/nginx.pid --with-http_ssl_module --with-pcre=/ng/pcre-8.38 --with-zlib=/ng/zlib-1.2.11 --with-openssl=/ng/openssl-1.0.2l
checking for OS
........
............
Configuration summary

  • using PCRE library: /ng/pcre-8.38
  • using OpenSSL library: /ng/openssl-1.0.2l
  • md5: using OpenSSL library
  • sha1: using OpenSSL library
  • using zlib library: /ng/zlib-1.2.11

nginx path prefix: "/usr/local/nginx"
nginx binary file: "/ng/nginx-1.8.0/nginx"
nginx configuration prefix: "/ng/nginx-1.8.0"
nginx configuration file: "/ng/nginx-1.8.0/nginx.conf"
nginx pid file: "/ng/nginx-1.8.0/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"

[root@7e0590732abb nginx-1.8.0]# make
make -f objs/Makefile
......
.........
make[2]: Leaving directory `/ng/openssl-1.0.2l'
Operating system: x86_64-whatever-linux2
You need Perl 5.
make[1]: * [/ng/openssl-1.0.2l/.openssl/include/openssl/ssl.h] Error 1
make[1]: Leaving directory `/ng/nginx-1.8.0'
make: * [build] Error 2

[root@7e0590732abb nginx]# pwd
/usr/local/nginx
[root@7e0590732abb nginx]# cd sbin
[root@7e0590732abb sbin]# ls
nginx
[root@7e0590732abb sbin]# ./nginx
[root@7e0590732abb sbin]# ss -tnl | nginx
bash: nginx: command not found
bash: ss: command not found
[root@7e0590732abb sbin]# yum -y install netstat
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile

  • base: mirror.bit.edu.cn
  • extras: mirror.bit.edu.cn
  • updates: mirror.bit.edu.cn
    ......

..........
Complete!
[root@7e0590732abb sbin]# netstat -an | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN

6、因为上面的容器在启动时没有映射端口,容器保存后映射端口并运行。

[root@docker01 ~]# docker run -it -p 80:80 --name ngx00 -v /ng:/ng c367c7a906d8 /bin/bash
[root@a4f55a7586e4 sbin]# ./nginx
[root@a4f55a7586e4 sbin]# netstat -an | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN

7、使用宿主机IP+80端口访问正常

问题:
在编译安装时仍然有报错,如果高手看到帮忙分析一下,目前还没找到解决方案。

时间: 2024-12-25 17:02:23

Docker容器内部安装Nginx的相关文章

Docker 内部安装Nginx精简版

1.运行容器并创建nginx文件夹gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel 2.安装依赖包gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel 3.获取nginx 4.编译安装nginx 5.运行nginx 6.检查nginx是否运行使用netstat命令发现没有该命令,使用yum -y install net-tools安装该工

如何在一个Docker容器里安装Discourse

大家好,今天我们将会学习如何利用Docker平台安装Discourse.Discourse是一个完全开源的讨论平台,以未来十年的互联网理念设计,拥有一个邮件列表,一个论坛和一个长篇聊天室.不管从技术角度还是社会学角度,如今要体验一个现代的.勃勃生机的.完全开源的互联网讨论平台,Discourse都是一个不错的途径.Discourse是一个简单.简明.简易的讨论方式.它确实是一个令人称赞的平台,对于互联网上各种各样的论坛来说,提供了一个上手可用的很酷的服务. Docker是一个开源的.可以将任何应

在Linux系统下使用Docker以及Weave搭建Nginx反向代理

  Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动发现.它可以让我们更加专注于应用的开发,而不是基础架构.Weave 提供了一个如此棒的环境,仿佛它的所有容器都属于同个网络,不需要端口/映射/连接等的配置.容器中的应用提供的服务在 weave 网络中可以轻易地被外部世界访问,不论你的容器运行在哪里.在这个教程里我们将会使用 weave 快速并且

Docker容器的IO基准

本文讲的是Docker容器的IO基准,[编者的话]本文主要介绍Docker容器IO基准的创建与测试. 本周我需要一个快速而且简单的IO基准工具,因此决定创建一个Docker 容器来实现我的目标.Docker 容器它本身是比较简单的,在你闲暇的时候就可以使用.Docker 容器基于Ubuntu的最新版本,安装FIO包,并从我的网站抓取一个简单的测试文件来生成负载和基准测试结果. Dockerfile 1 # FIO benchmark on Ubuntu:latest 2  3 FROM ubun

使用OpenStack管理Docker容器(一)

本文讲的是使用OpenStack管理Docker容器(一),[编者的话]本文将讲述如何使用OpenStack创建并管理Docker,有3种流行的使用方法,使用的分别是Nova Docker驱动,Heat Docker插件,以及Magnum.这篇文章分成2部分,第一部分,将主要介绍Nova Docker驱动的用法.第二部分,是关于Heat Docker插件和Magnum.这是序列文章的第一部分. 在这篇文章中,我将介绍一些不同的方法,这些方法是关于OpenStack如何创建,以及管理Docker容

学习Docker容器网络模型 - 搭建分布式Zookeeper集群

ZooKeeper是一个流行的分布式协调服务.它提供了两种不同的部署方式:单机模式和分布式模式.其中单机模式的部署非常简单,网上也有很多资料,我们今天会利用Docker搭建分布式Zookeeper集群,并来帮助大家熟悉Docker中容器网络模型的使用. ZooKeeper集群中所有的节点作为一个整体对分布式应用提供服务.节点中有两个的角色:Leader和Follower.在整个集群运行过程中,只有一个Leader,其他节点的都是Follower,如果ZK集群在运行过程中Leader出了问题,系统

Docker实战web应用-Nginx镜像与容器的创建、配置和管理

1,查找系统镜像并创建容器. 这里我们docker ps  | grep  centos 查看到有我们之前创建的centos7-ssh镜像(里边已经搭建好ssh服务),如果之前没有,可以自己下载一个linux系统镜像. docker  run  -dti  --name nginx-ssh-centos -p 22022:22  centos7-ssh 创建好这个容器以后,我们通过工具ssh远程进去该容器配置nginx. 2,容器搭建nginx 至于容器的搭建,这里就不演示了,和普通系统配置ng

Docker容器配置Nginx实例分享_docker

作为目前最火的应用,Docker 确实存在着其独到之处,无论是程序猿还是运维都应该听说过 Docker 的大名,Docker 已经走过了许多的坑,目前最新版本是 v1.11.0 版本,应该说是完全能承载开发使用和运维监控,这款工具能帮助我们高效的打包.发布和运行承载着应用程序的容器系统.而且收集日志.帮助 App 的快速开发都有很大作用. 容器和虚拟机,经常是被拿出来对比的两款产品,实际上两者有着根本的差别,虚拟机是完全模拟了一台真实计算机,在上面运行的系统可能或者不可能知道自己运行在虚拟化环境

安装配置 flannel - 每天5分钟玩转 Docker 容器技术(59)

上一节我们部署了 etcd,本节安装和配置 flannel. build flannel flannel 没有现成的执行文件可用,必须自己 build,最可靠的方法是在 Docker 容器中 build.不过用于做 build 的 docker 镜像托管在 gcr.io,国内可能无法直接访问,为方便大家,我把它 mirror 到了 docker hub,构建步骤如下: 下载并重命名 image. docker pull cloudman6/kube-cross:v1.6.2-2 docker t