【Docker】安装nginx➕部署项目

这篇具有很好参考价值的文章主要介绍了【Docker】安装nginx➕部署项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🥳🥳Welcome 的Huihui's Code World ! !🥳🥳

接下来看看由辉辉所写的关于Docker的相关操作吧

目录

🥳🥳Welcome 的Huihui's Code World ! !🥳🥳

一.安装软件

 0.Java

1.Mysql

2.安装nginx

①nginx相关介绍

②nginx安装

二.本篇难题 


本节是来部署一个项目,所以先将jar包放入进来

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

一.安装软件

 先是要把mysql容器创建一下,并且创建一个基于jdk的自定义镜像

 0.Java

首先得需要一个java环境

构建镜像

FROM openjdk
WORKDIR /project
COPY spring.jar /project
CMD java -jar spring.jar --mysql.addr=m1
docker build -t spring:v1 .

测试镜像

docker run -itd --name s1 --net mynet --ip 172.20.0.101  -p 8080:8080 spring:v1

在创建两个容器,为了后面的nginx做负载均衡做准备 

docker run -itd --name s2 --net mynet --ip 172.20.0.102 spring:v1
docker run -itd --name s3 --net mynet --ip 172.20.0.103 spring:v1

1.Mysql

拉取镜像

docker pull mysql/mysql-server

创建mysql容器

docker run \
--name m1 \
-v /mysql/conf/my.cnf:/etc/my.cnf \
-v /mysql/data:/var/lib/mysql \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
--net mynet \
--ip 172.20.0.200 \
-d mysql/mysql-server:5.7

 上面一段命令的详解

  • docker run:用于创建和启动一个新的容器。
  • --name m1:将容器命名为 "m1",以便后续对容器进行管理和操作。
  • -v /mysql/conf/my.cnf:/etc/my.cnf:将本地主机上的 /mysql/conf/my.cnf 文件挂载到容器的 /etc/my.cnf 路径,用于配置 MySQL 的配置文件。
  • -v /mysql/data:/var/lib/mysql:将本地主机上的 /mysql/data 目录挂载到容器的 /var/lib/mysql 路径,用于存储 MySQL 数据库文件。
  • --privileged=true:为容器提供一些特权,以便在容器内执行特定的操作。
  • -e MYSQL_ROOT_PASSWORD=123456:设置环境变量 MYSQL_ROOT_PASSWORD 的值为 "123456",用于设置 MySQL 数据库的 root 用户密码。
  • --net mynet:将容器连接到名为 "mynet" 的自定义网络中。
  • --ip 172.20.0.200:为容器指定 IP 地址为 "172.20.0.200",以便在自定义网络中进行通信。
  • -d mysql/mysql-server:5.7:使用 MySQL 官方提供的镜像 mysql/mysql-server:5.7 创建并后台运行容器。

授权

grant all on *.* to root@'%' identified by '123456';

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

数据库及脚本的创建

create database shop;

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

把数据库脚本放入到目录挂载的那个位置

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维 

一定要在刚刚创建好的数据库里面执行这个脚本哦

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维 

执行sql脚本

source /var/lib/mysql/book.sql

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

这时候我们再去访问项目,就可以连接到数据库了

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

2.安装nginx

①nginx相关介绍

相关概述

Nginx(发音为“engine X”)是一个流行的开源 Web 服务器,也可以用作反向代理、负载均衡器和 HTTP 缓存。它最初由 Igor Sysoev 创建,现在由 NGINX 公司维护。

Nginx 可以同时处理数万个并发连接,而且占用的系统资源非常少。这使得它成为高性能 Web 服务器和应用程序服务器的首选之一。除了 HTTP 和 HTTPS 之外,Nginx 还支持许多其他协议,例如 SMTP、POP3 和 IMAP。

Nginx 的设计强调了模块化和可扩展性,它的核心只包含了一些基本的特性,其他功能都由模块提供。这使得它非常灵活,可以根据需要轻松地添加或删除功能。

负载均衡

 负载均衡是一种分布式计算技术,用于在计算机网络或服务器集群中分配工作负载,以实现资源的优化利用和提高系统性能。当一个系统面临大量的请求时,负载均衡可以将这些请求平均地分配给多个服务器或计算节点,确保每个服务器都能够承担适当的负载。

        负载均衡的主要目标是避免某些服务器负载过重,而其他服务器处于空闲状态的情况,从而提高整个系统的吞吐量、响应速度和可靠性。通过合理地分发请求,负载均衡可以确保每个服务器都能够充分利用其计算和存储资源,并且在某个服务器出现故障时,其他服务器可以接管其工作,保证系统的连续性和可用性。

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

动静分离

  动静分离(Dynamic-Static Separation)是一种将动态内容和静态内容分开处理的技术。在网络应用中,动态内容通常是指根据用户请求生成的、实时变化的数据,而静态内容则是指不变的、相对固定的文件,如HTML、CSS、JavaScript、图片等。

        动静分离的目的是优化网站或应用程序的性能和可扩展性。通过将静态内容与动态内容分别存储和处理,可以提高系统的响应速度、减轻服务器负载,并降低带宽消耗。

        动静分离可以提升性能,静态资源可以被缓存,减少了服务器生成内容的压力,加快了网页加载速度。减轻服务器负载,静态资源可以由CDN等专门的服务器提供,减轻了应用服务器的负载。节省带宽成本,通过CDN分发静态内容,可以减少对服务器带宽的需求,降低带宽成本
【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

②nginx安装

拉取镜像

docker pull nginx

创建一个nginx容器

docker run -itd \
--name n1 \
-v /soft/nginx/conf.d:/etc/nginx/conf.d \
-v /soft/nginx/html:/etc/nginx/html \
-p 80:80 \
--net mynet \
--ip 172.20.0.104 \
nginx
  • docker run -itd: 运行一个交互式容器,并将其设置为在后台运行。
  • --name n1: 为容器指定一个名称,这里是 "n1"。
  • -v /soft/nginx/conf.d:/etc/nginx/conf.d: 将本地目录 /soft/nginx/conf.d 挂载到容器内的 /etc/nginx/conf.d 目录,用于存放 Nginx 的配置文件。
  • -v /soft/nginx/html:/etc/nginx/html: 将本地目录 /soft/nginx/html 挂载到容器内的 /etc/nginx/html 目录,用于存放 Nginx 的静态网页文件。
  • -p 80:80: 将主机的 80 端口映射到容器的 80 端口,以便可以通过主机的 IP 地址访问 Nginx。
  • --net mynet: 将容器连接到网络 mynet,以便与其他容器进行通信。
  • --ip 172.20.0.104: 为容器分配一个指定的 IP 地址,这里是 172.20.0.104。
  • nginx: 指定要运行的镜像名称,这里是 Nginx。

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

配置文件

#服务器的集群
upstream tomcatList {  
    server 172.20.0.101:8080 weight=1; 
    server 172.20.0.102:8080 weight=1; 
    server 172.20.0.103:8080 weight=1; 
} 
    
server {

    listen  80;
    server_name  www.wh.com;

    location / {
        root   /etc/nginx/html/;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    
    location ~^/api/ {
        rewrite ^/api/(.*)$ /$1 break;
        proxy_pass  http://tomcatList;
        proxy_redirect default;
    }

}

上面的这个配置文件是一个使用 Nginx 实现的服务器集群配置示例。该配置使用了反向代理和负载均衡来将请求分发给多个 Tomcat 服务器。

首先,在 upstream 指令中定义了一个名为 tomcatList 的集群,其中包含了三个 Tomcat 服务器的 IP 地址和端口号。每个服务器都有相同的权重,表示它们将平均地接收到相同数量的请求。

然后,在 server 块中配置了监听端口为 80,并设置了域名为 www.wh.com 的虚拟主机。

接下来,location / 指令配置了根目录和默认的索引文件。

error_page 指令配置了处理服务器错误的页面。

location = /50x.html 指令配置了处理 500 错误的页面。

最后,location ~^/api/ 指令使用了正则表达式匹配以 "/api/" 开头的请求,并将这些请求转发到 tomcatList 集群中的 Tomcat 服务器上

静态页面

这个可以自己写一个静态的页面,然后将一整个文件夹王目录挂载的地方放【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

这时候我们已经可以去访问项目了,因为用nginx做了反向代理,所以可以使用80端口进入,如果不接端口,默认也是80

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

这里已经可以访问了,但是现在没有数据,这是因为我们这里使用了域名进行访问,如果没有映射这个域名的话,那么就没有数据

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

域名映射

进入到电脑指定目录

C:\Windows\System32\drivers\etc\hosts

记得修改一下对文件的控制权,不然修改可能会不成功

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维 

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

二.本篇难题 

在测试镜像的时候,突然出现了一个错误,在网上查询之后,是要删除自定义的网络重新创建,可结果在创建的时候又出现了那个问题。。。【问题的大概意思就是iptables 命令无法创建链或目标】

👇错误👇

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

[root@localhost ~]# docker network create --subnet=172.20.0.0/16 mynet
Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-54d4ec12080f -j RETURN: iptables: No chain/target/match by that name.
 (exit status 1))

解决办法

输入命令service docker restart重启以下Docker即可

service docker restart

【Docker】安装nginx➕部署项目,Docker,docker,容器,运维

好啦,今天的分享就到这了,希望能够帮到你呢!😊😊 文章来源地址https://www.toymoban.com/news/detail-802383.html

到了这里,关于【Docker】安装nginx➕部署项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker 安装 Nginx 部署前端项目

    注意 :这里有一个需要注意的点,Nginx 一般是根据配置文件启动的。 如果我们在第一次启动的时候就挂载目录,那么因为我们宿主机是空文件,会直接导致 Nginx 容器内的配置文件被覆盖,致使启动失败。 所以的步骤如下 1、宿主机创建好要挂载的目录 -p  参数的作用就是允许

    2024年04月11日
    浏览(37)
  • docker 部署项目的操作文档,安装nginx

    在Linux系统上,Docker默认将镜像存储在 /var/lib/docker 目录下。这个目录包含了Docker的运行时数据,包括镜像、容器、卷等。 在 /var/lib/docker 目录下,镜像的具体存放位置如下: 镜像层(Image Layers): /var/lib/docker/image/overlay2 目录下存放了镜像的各个层。 镜像元数据(Image Meta

    2024年01月20日
    浏览(39)
  • 【Docker】使用Docker安装Nginx及部署前后端分离项目应用

            Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。它是由 伊戈尔·赛索耶夫 为俄罗斯访问量第二的Rambler.ru站点开发的,公开版本1.19.6发布于2020年12月15日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置

    2024年01月22日
    浏览(38)
  • 深入Docker5:安装nginx部署完整项目

    目录 准备 为什么要使用nginx mysql容器构建 1.删除容器 2.创建文件夹 3.上传配置文件 4.命令构建mysql容器 5.进入mysql容器,授予root所有权限 6.在mysql中用命令运行sql文件 7.创建指定数据库shop 8.执行指定的sql文件 nginx安装与部署         1.拉取镜像 2.创建并运行nginx容器 3.新建

    2024年01月19日
    浏览(39)
  • 【Docker】Linux中使用Docker安装Nginx部署前后端分离项目应用

    目录 一、概述 1. Nginx介绍 2. Nginx优势 3. Nginx的工作原理 二、容器创建 1. Mysql容器 2. Tomcat容器 3. Nginx容器 每篇一获 Nginx(发音为 \\\"engine x\\\")是一个开源的、高性能的 HTTP 服务器和反向代理服务器。它也可以作为一个 IMAP/POP3/SMTP 代理服务器。Nginx 是由 Igor Sysoev 开发的,最

    2024年01月21日
    浏览(44)
  • lua使用resty.http做nginx反向代理(https请求,docker容器化部署集群),一个域名多项目转发

    下载使用 链接:https://pan.baidu.com/s/1uQ7yCzQsPWsF6xavFTpbZg 提取码:htay –来自百度网盘超级会员V5的分享 ad_load.lua文件

    2024年01月18日
    浏览(58)
  • Unbutu系统-Docker安装、JDK环境配置,Docker常用指令、Docker安装MySQL、Redis、Tomcat、Nginx,前端后分离项目部署

    目录 1、防火墙 1.1、查看防火墙状态 1.2、开启防火墙 1.3、关闭防火墙 1.4、重启防火墙 1.5、查看防火墙版本 2、安装JDK 2.1、官网下载tar包 2.3、解压tar.gz文件 2.4、配置环境变量 2.4.1、查看安装路径 2.4.2、设置环境变量 2.4.3、执行该让环境变量生效 2.4.4、查看JDK版本 3、Docker

    2024年02月04日
    浏览(47)
  • 【ubuntu】ubuntu 20.04安装docker,使用nginx部署前端项目,nginx.conf文件配置

    docker 官网:Install Docker Engine on Ubuntu 1.将apt升级到最新 2.使用apt安装 docker 和 docker-compose (遇到提示输入 y ) 3.将当前用户添加到docker用户组 4.运行hello-world 运行成功 1.修改配置文件 修改conf/nginx.conf 2.重新挂载 给容器设置自启动(如果提示就去掉sudo) 给docker设置开机自启动

    2024年01月20日
    浏览(47)
  • 【Docker】Docker容器实战部署多个Nginx实现负载均衡和高可用

    前言 Docker下部署多个Nginx进行负载均衡,我这次实操的思路是使用三个Nginx。其中一个Nginx起负载均衡的作用,叫做 nginx-lb ,单独一个配置文件。另外2个Nginx起真正的转发作用,叫做 nginx1 和 nginx2 ,他们共享同一个配置文件,思路图如下。 接下来我们直接进行实操演示。 下载

    2024年01月16日
    浏览(34)
  • Docker安装运行Nginx容器(纯步骤)

    本文章只有步骤,没有原理解释,只做平时学习提示。提前说明:由于nginx里的配置文件比较多,所以本文章不对此配置文件解释而且会有一些小问题,这个你酌情操作,但不影响你nginx容器的创建你可以在容器创建成功后再寻找别的文章对nginx的相关配置进行操作。 创建可以

    2024年02月01日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包