• docker下安装nginx,启动ngixn,修改nginx配置等--超详细


    1、获取nginx版本

      docker中nginx版本信息:https://hub.docker.com/_/nginx?tab=tags&page=1&ordering=last_updated

      

    2、拉取nginx

      docker pull nginx:1.16.1

      nginx后面的:1.16.1表示具体版本,如果不指定,则默认拉取最新的latest

      显示如下图,则表示安装成功

      

     3、启动nginx

      3.1查看nginx信息

        

       3.2 错误启动示范:docker run --name nginx -d nginx -p 80:80

        执行结果如下:

        

         可以看出,docker重新拉区了最新的latest版本的nginx

         

          通过docker ps查看发现并没有运行中的容器

        

        通过docker ps -a 查看发现已经创建的容器

        

         由上可见,如果直接-d nginx,会从仓库中拉取最新版本的nginx镜像,并创建容器,但这不是我们想要的,这时候我们需要把latest的nginx删除掉,删除前需要先把容器删除,否则会提示以下内容

        

         (注:操作镜像或者容器,可以只写id的保证不重复的前几位)

      3.3 删除nginx镜像和容器

        

         

       3.4 正确启动nginx

        docker run --name nginx -p 80:80 -d dfcfd8e9a5d3

        

        参数说明: 

          docker run : 启动容器

          --name nginx:指定容器启动后名称,注意是两个-

          -p 80:80:将容器的80端口(冒号后面)映射到宿主机的80端口(冒号前面)上,容器相当于一个简化版的服务器,所以需要映射才能被访问

          -d dfcfd8e9a5d3: 指定后台启动,并指定后台启动的镜像名称(建议指定,也有教程说可以不指定的,没有试验)

      3.5 修改配置文件

        3.5.1 直接修改配置

          进入容器:docker exec -it 3a bash

          

           nginx路径在/etc/nginx下

          

          编辑nginx.conf,提示 bash: vim: command not found ,因为nginx这个容器没有安装编辑器,所以先安装 apt-get  update 之后 apt-get install vim

          编辑nginx.conf,退出容器,然后重启系统,则可以查看结果。

          

         3.5.2 挂载文件

          在宿主机上新建文件夹 mkdir nginx,在文件夹下新建logs路径,mkdir logs ,将事先准备好的nginx.conf复制到nginx路径下,结果如下如所示:

          

           挂载文件

           docker run --name nginx2 -p 90:90 -v /mnt/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/docker/nginx/logs:/var/log/nginx -d dfcfd8e9a5d3

          参数说明:

            --name nginx2: 启动容器的名称,用于关闭或者启动,docker stop nginx1/docker start nginx1

            -p 90:90 : 将容器的90端口映射到宿主机的90端口上

            -v /mnt/docker/nginx/nginx.conf:/etc/nginx/nginx.conf :将宿主机上的/mnt/docker/nginx/nginx.conf覆盖容器里的/etc/nginx/nginx.conf,这样宿主机上的nginx就会以本地的nginx为配置文件

            -v /mnt/docker/nginx/logs:/var/log/nginx :将容器的日志目录/var/log/nginx修改为宿主机的/mnt/docker/nginx/logs,这样日志就会往宿主机的/mnt/docker/nginx/logs下输出access.log和error.log

      3.6 修改nginx访问宿主机文件

        将文件放到/mnt/docker/test中,将nginx.conf修改root路径为/mnt/docker/test,启动容器

        docker run --name nginx2 -p 90:90 -v /mnt/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/docker/nginx/logs:/var/log/nginx -v /mnt/docker/test:/mnt/docker/test -d dfcfd8e9a5d3

        这样就相当于将本地的文件映射到了容器里,nginx访问容器上的路径时就访问到了宿主机上。

     4、配置proxy_pass

      先安装必要的工具 

        apt-get update

        apt-get install -y curl telnet

      查看容器ip

      docker inspect 38914185adb1(容器id)

      

       由图可以看出容器的ip是172.17.0.2,宿主机的ip是172.17.0.1,所以配置tomcatip的时候配置宿主机或者其他容器的ip即可

  • 相关阅读:
    个人号微信机器人开发
    群控系统开发sdk服务端调用方法
    微信个人号scrm客服通信协议定义
    微信crm客服系统使用sdk定制开发(持续更新中!)
    微信客服crm系统接口定义(完善中)
    压测工具-ab
    设计模式之美学习-结构型-享元模式(二十五)
    设计模式之美学习-结构型-组合模式(二十四)
    设计模式之美学习-结构型-门面模式(二十三)
    设计模式之美学习-结构型-适配器模式(二十二)
  • 原文地址:https://www.cnblogs.com/xiufengd/p/15044315.html
Copyright © 2020-2023  润新知