【无标题】Docker安装nginx

一、自定义网络相关命令

1.0network帮助命令

  docker network --help

在这里插入图片描述

1.1创建自定义网络

  1.创建自定义网络
       docker network create --driver bridge --subnet 192.168.0.1/16 --gateway 192.168.0.1 mynet
       参数说明
       --driver bridge  设置网络模式
       --subnet 192.168.0.1/16  设置子网
       --gateway 192.168.0.1 设置网关
       mynet  自定义网络的名称

在这里插入图片描述

1.2删除自定义网络

 2.删除自定义网络mynetwork(没有容器使用此网络才能删除)
      docker network rm mynetwork

在这里插入图片描述

1.3查看docker中已安装的所有网络

    3.查看docker中已安装的所有网络
       docker network ls  

在这里插入图片描述

1.4查看自定义网络mynet中的配置信息

   4.查看自定义网络mynet中的配置信息 
       docker network inspect mynet

在这里插入图片描述

1.5. 启动容器时,指定网络、IP

  docker run --name c1 -itd --net mynet --ip 192.168.0.11 centos:7
  docker run --name c2 -itd --net mynet --ip 192.168.0.12 centos:7

在这里插入图片描述

在这里插入图片描述

1.6. 启动容器后检查网络之间是否可以互通

 docker exec -it c1 /bin/bash
 ping c2

在这里插入图片描述

  docker exec -it c1 ping c2

在这里插入图片描述

1.8. 如何让docker上2个不同网络的容器互连(重要)

1.8.1使用局域名bridge

  docker run --name c7 -itd centos:7
        docker network inspect bridge

在这里插入图片描述

1.8.2.测试c1和c7的连接

   docker exec -it c1 ping c7
        #连接失败,控制台出现如下提示
        ping: centos2: Name or service not known

在这里插入图片描述

1.8.3.如何解决此问题呢?向网络mynet中添加容器centos1

     docker network connect mynet c7
     docker network inspect mynet

在这里插入图片描述
为什么成功了呢?原因:容器c7具有两个ip
查看容器详细信息
docker inspect c7

docker inspect c7

在这里插入图片描述

二、nginx

2.0 nginx是什么

  Nginx也是一款服务器,我们常用它做如:反向代理、负载均衡、动态与静态资源的分离的工作,

  反向代理:反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,
  并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
  负载均衡:目前大多数的网站都会采用负载均衡手段来针对目前用户的指数级增长来减少对单点服务器的负载压力,
  比如目前我们拥有3台真实服务器,我们需要根据相应策略决定什么样的用户请求分配到哪个真实服务器,比如按照轮询的方式,
  用户请求挨个到达代理服务器,此时代理服务器按照第一个请求转发至第一台真实服务器,第二个请求转发到第二个服务器上,依次类推,
  这样可以防止大量的用户请求全部访问到同一台物理机上,单点物理机的性能始终有限的,当然这可能对服务器数据访问时候造成事务性的失效,
  在Web方面可能造成Session访问的问题,这不在本文讨论方面内


  Nginx+tomcat是目前主流的java web架构


2.1安装nginx

2.1.1.搜索nginx镜像

   docker search nginx   

在这里插入图片描述

2.1.2.拉取镜像

   docker pull nginx 

在这里插入图片描述
在这里插入图片描述

2.1.3.在宿主机中创建挂载目录

 mkdir -p /data/nginx/{conf,conf.d,html,log}

 
      注1:因为在nginx镜像中没有安装vi或vim编辑器(安装又太麻烦了),无法编辑nginx配置文件,所以直接通过数据卷挂载上去更加方便
      注2:将nginx配置文件nginx.conf上传到宿主机的挂载目录“/data/nginx/conf”下
      注3:将vue前端项目打包后上传到宿主机的挂载目录“/data/nginx/html”下并解压
               unzip dist.zip

在这里插入图片描述

2.1.4.根据nginx镜像创建nginx容器(测试nginx的安装与访问,并没有发布任何的java或vue项目,最后此容器要删除的)

A.使用docker内置网络bridge

      docker run \
       --name mynginx \
       -d -p 80:80 \
       nginx:latest



  #登录nginx容器
      docker exec -it mynginx  /bin/bash

在这里插入图片描述
在这里插入图片描述

B.使用自定义网络mynet ???外部浏览器连接不上

先删除之前存在的A版本的nginx
在这里插入图片描述

 docker run \
       --name mynginx \
       -d -p 80:80 \
       --net mynet --ip 192.168.0.13 \
       nginx:latest

       注1:记得修改centos7的防火墙放开80端口
            # 开启80端口
            firewall-cmd --zone=public --add-port=80/tcp --permanent

            #重启防火墙(不重启以上的设置是不会生效的):
            firewall-cmd --reload

            #查询指定端口号是否开启:
            firewall-cmd --query-port=80/tcp

      小结:  mynginx使用docker内置网络bridge,再mynginx添加至mynet中

在这里插入图片描述

2.1.5.docker实战之通过nginx镜像来部署SPA项目

nginx+tomcat实现反向代理及均衡
nginx+html静态服务器
在这里插入图片描述

 1.创建nginx容器
      docker run \
       --name mynginx \
       -d -p 80:80 \
       -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
       -v /data/nginx/log:/var/log/nginx \
       -v /data/nginx/html:/usr/share/nginx/html \
       nginx:latest




     注1: 因为在nginx镜像中没有安装vi或vim编辑器(安装太麻烦了),无法编辑nginx配置文件,所以所有数据和配置都是通过数据卷挂载
            第一个-v:挂载nginx的主配置文件,以方便在宿主机上直接修改容器的配置文件
            第二个-v:挂载容器内nginx的日志,容器运行起来之后,可以直接在宿主机的这个目录中查看nginx日志
            第三个-v:挂载静态页面目录
            注意命令之间的换行与空格

    注2:如果容器创建失败,可通过如下命令,查看在docker容器启动日志
            docker logs -f -t --tail 行数 容器名
            docker logs -f -t --tail 100 mynginx

       注3:如果要进入容器内部,这里是bash而非sh,要根据实际的基础镜像来
            docker exec -it mynginx /bin/bash

在这里插入图片描述
在这里插入图片描述

2.1.6.nginx.conf讲解

 1.所有配置必须以“;”结尾 
  2.nginx发布java项目
    nginx+tomcat实现反向代理及均衡
    upstream  tomcats{
      #TODO:172.17.0.3是docker容器的IP 
      server    172.17.0.3:8080  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。    
      server    172.17.0.4:8080  weight=2;
    }

    location / {
      proxy_pass http://tomcats;
      proxy_redirect default;
    }    

2.1.7.nginx发布静态vue项目

先导入vue项目
在这里插入图片描述
然后解压,可能没有unzip这个命令需要下载

yum install -y unzip

在这里插入图片描述
可以访问vue项目的登录页面即成功

测试:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值