千家信息网

Docker中Nginx环境如何搭建

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,小编给大家分享一下Docker中Nginx环境如何搭建,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Docker 之 Ng
千家信息网最后更新 2025年01月31日Docker中Nginx环境如何搭建

小编给大家分享一下Docker中Nginx环境如何搭建,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Docker 之 Nginx环境搭建

Nginx 安装教程

Linux 环境

Linux 中安装

  • 安装编译工具及库文件

    yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
  • 首先要安装 PCRE

    PCRE 作用是让 Nginx 支持 Rewrite 功能

    若提示无wget则安装(在 Docker 拉取的源 centos 中默认是没安装的)

    yum -y install wget

    进入程序安装目录

    cd /usr/local/src/
    • 下载pcre安装包

      wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
    • 解压安装包:

      tar -zxvf pcre-8.35.tar.gz
    • 删除安装包

      rm -rf pcre-8.35.tar.gz
    • 进入安装包

      cd pcre-8.35
    • 编译安装

      ./configuremake && make install
    • 查看pcre版本

      preconv --version
      [root@de790c02f7b6 pcre-8.35]# preconv --versionGNU preconv (groff) version 1.22.2 with iconv support
  • 安装 Nginx

    • 下载安装包

      wget http://nginx.org/download/nginx-1.6.2.tar.gz
    • 安装

       cd nginx-1.8.0 ./configure --prefix=/usr/local/nginx make make install
    • 检查安装结果

        /usr/local/nginx/sbin/nginx -v

Dockerfile 安装

脚本

FROM centos:latest## 制作者信息MAINTAINER xiachaoyang xiazhaoyang@live.comRUN yum install -y pcre-devel wget net-tools gcc zlib zlib-devel make openssl-devel## 创建目录RUN mkdir -p /usr/local/nginx## 本地安装 直接自动解压## ADD nginx-1.8.0.tar.gz /usr/local/src## 在线安装RUN cd /usr/local/srcADD http://nginx.org/download/nginx-1.8.0.tar.gz .RUN tar -zxvf nginx-1.8.0.tar.gzRUN ln -s /usr/local/src /componetsRUN cd nginx-1.8.0 && ./configure --prefix=/usr/local/nginx && make && make installRUN rm -vf /usr/local/nginx/conf/nginx.confADD http://www.apelearn.com/study_v2/.nginx_conf /usr/local/nginx/conf/nginx.confEXPOSE 80# 设置启动时执行命令#ENTRYPOINT /usr/local/nginx/sbin/nginx -v

镜像

docker build -t env-nginx .
docker images
docker tag [镜像ID] env-nginx:1.0
docker run -i -t -p 80:80 env-nginx:1.0

清空 Nginx Docker

docker rm -f docker container ls -a -q
docker rmi -f env-nginx:2.0
docker build -t env-nginx:2.0 .
docker run -i -t -p 8001:80 -name nginx -restart=always env-nginx:2.0

运行后执行nginx

xiazhaoyangdeMacBook-Pro:~ xiazhaoyang$ docker run -i -t -p 8001:80 --restart=always 127.0.0.1:5000/env-nginx:1.0[root@56dfba762876 /]# cd usr/local/nginx/sbin/[root@56dfba762876 sbin]# lsnginx[root@56dfba762876 sbin]# ./nginx -v    nginx version: nginx/1.8.0[root@56dfba762876 sbin]# ps -ef|grep nginxroot        18     1  0 07:44 pts/0    00:00:00 grep --color=auto nginx[root@56dfba762876 sbin]# ./nginx[root@56dfba762876 sbin]# ps -ef|grep nginxroot        20     1  0 07:45 ?        00:00:00 nginx: master process ./nginxnobody      21    20  0 07:45 ?        00:00:00 nginx: worker processnobody      22    20  0 07:45 ?        00:00:00 nginx: worker process

配置路由

  • 关闭nginx

    ./nginx -s stop

    xiazhaoyangdeMacBook-Pro:~ xiazhaoyang$ docker psCONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES56dfba762876        127.0.0.1:5000/env-nginx:1.0   "/bin/bash"              10 minutes ago      Up 10 minutes       0.0.0.0:8001->80/tcp     brave_kowalevskid75f05b4d7f8        hyper/docker-registry-web      "start.sh"               5 days ago          Up About an hour    0.0.0.0:8000->8080/tcp   local-docker-res-web1b5239bc943b        registry                       "/entrypoint.sh /etc…"   5 days ago          Up About an hour    0.0.0.0:5000->5000/tcp   local-docker-resxiazhaoyangdeMacBook-Pro:~ xiazhaoyang$ docker attach 56dfba762876[root@56dfba762876 sbin]# lsnginx[root@56dfba762876 sbin]# cd ..[root@56dfba762876 nginx]# lsclient_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp[root@56dfba762876 nginx]# cd cclient_body_temp/ conf/             [root@56dfba762876 nginx]# cd conf/[root@56dfba762876 conf]# lsfastcgi.conf          fastcgi_params          koi-utf  mime.types          nginx.conf          scgi_params          uwsgi_params          win-utffastcgi.conf.default  fastcgi_params.default  koi-win  mime.types.default  nginx.conf.default  scgi_params.default  uwsgi_params.default[root@56dfba762876 conf]# cd ../sbin/             [root@56dfba762876 sbin]# ./nginx -s stop[root@56dfba762876 sbin]# ps -ef|grep nginxroot        30     1  0 07:55 pts/0    00:00:00 grep --color=auto nginx
  • 修改路由配置

    vi nginx.config

    [root@56dfba762876 conf]# cd ../sbin/[root@56dfba762876 sbin]# ./nginx[root@56dfba762876 sbin]# cd ..[root@56dfba762876 nginx]# cd conf/[root@56dfba762876 conf]# vi nginx.conf[root@56dfba762876 conf]# cd ../sbin/[root@56dfba762876 sbin]# ./nginx -s stop[root@56dfba762876 sbin]# ./nginx        [root@56dfba762876 sbin]#   server{    listen 80;    server_name localhost;    index index.html index.htm index.php;    root /usr/local/nginx/html;    location ~ \.php$ {        include fastcgi_params;        fastcgi_pass unix:/tmp/php-fcgi.sock;        fastcgi_index index.php;        fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;    }   location /docker-registry-web/ {                proxy_pass   http://192.168.2.102:8000/;                proxy_redirect default;        }   location /jenkins/ {                proxy_pass   http://192.168.2.102:8002/;                proxy_redirect default;        }}

    jenkins通过nginx映射效果


以上是"Docker中Nginx环境如何搭建"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0