Docker之安装Nginx

  🎉🎉欢迎来到我的优快云主页!🎉🎉

🏅我是君易--鑨,一个在优快云分享笔记的博主。📚📚

🌟推荐给大家我的博客专栏《Docker之Dockerfile构建镜像》。🎯🎯

🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁

 前言

        在上一期有关Dokcer博客的分享中我们学习到一些有关网络的知识点,有IP、子网掩码、网关等等,我们也学习了网络模式中的host、Bridge以及我们自定义网络,其中我们有谈及到bridge网络模式如何去连接到两个容器以及自定义网络中如何去连接两个容器。今天这期博客基于上一期Docker的网络配置博客,仔细阅读干货满满。

一、完善数据库配置

        我们在上一期的博客分享中我们只是实现了数据库的安装以及使其项目连接到我们的数据库上。今天我们就来完善我们的项目部署。首先我们先进入到我们的mysql容器中我们对其用户进行授权。

         然后我们重启一下mysql服务,我们将jar包拖至指定的目录下

         我们在该目录下编写一个镜像文件。输入指令:vim Dockerfile进入编辑镜像文件中

From openjdk

WORKDIR /project

COPY spring.jar /project

CMD java -jar spring.jar --mysql.addr=m1

         我们退出并保存,我们构建一个镜像

 

        接下来我们运行三个容器

docker run -itd --name s1 --net mynet --ip 172.20.0.101 -p 8080:8080 spring:v1
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

 

          我们在我们主机进行测试访问,验证。 

        我们查看日志时就会发现是我们的数据库没有,无法连接到指定的数据库中。 

         接下来我们进行新建数据库,我们先进入mysql容器中,我们创建对应的数据库,然后执行对应的数据库脚本。

 

        我们将数据库脚本拖至mysql下的data目录下 

 

         我们进入到数据库容器中运行数据库脚本

输入命令:source /var/lib/mysql/数据库脚本

 

 

         我们在网页上再进行测试一遍,我们就可以访问到我们数据库中的数据了

二、安装Nginx

        我们首先运行一个容器使用Nginx镜像进行运行。

         我们回到我们的网页上去访问80端口

        我们成功的访问Nginx,说明我们Nginx成功开启,但是我们没有前端,接下来我们要去修改Nginx配置文件,我们要通过目录挂载的形式将配置文件和静态页面挂载进去。我们首先创建对应的文件夹

 

        我们将配置文件复制到该目录下。 

         配置文件的内容如下

#服务器的集群
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.zkingedu.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;
    }

}

        我们切回ngnix文件夹下,将我们的静态文件页面拖至进去。

 

         我们移出之前创建的n1容器,重新创建一个

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

 

         我们去到网页上刷新测试

        成功的访问到我们Nginx的负载均衡, 当我们访问呢下方网址时会无法访问,因为我们没有域名映射。

        因为我们要去域名映射才能生效,在C:\Windows\System32\drivers\etc下的一个hosts文件进行修改,双击进行修,修改不了的话右击属性,点击安全,找到自己用户选择完全控制即可。 自己虚拟机的ip地址+www.zkingedu.com

        我们最后进行测试。 


 🎉🎉本期的博客分享到此结束🎉🎉

📚📚各位老铁慢慢消化📚📚

🎯🎯下期博客博主会带来新货🎯🎯

🎁三连加关注,阅读不迷路 !🎁

Docker 集群上安装 Nginx 可以通过多种方式实现,具体取决于集群的规模、部署方式(如是否使用 Kubernetes 等编排工具)以及高可用性需求。以下是几种常见的安装方法: ### 使用 Docker Compose 安装 Nginx(适用于小型集群或测试环境) 如果使用 Docker Compose 来管理服务,可以通过编写 `docker-compose.yml` 文件来定义和运行 Nginx 容器。 ```yaml version: '3' services: nginx: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./html:/usr/share/nginx/html restart: always ``` 运行以下命令启动服务: ```bash docker-compose up -d ``` 此方法适用于单节点部署,也可以结合 Docker Swarm 实现简单的集群部署[^3]。 --- ### 使用 Kubernetes 部署 Nginx(适用于生产环境) 若使用 Kubernetes 管理 Docker 集群,可以使用 Deployment 和 Service 来部署 Nginx。 #### 创建 Nginx Deployment ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 ``` #### 创建 Nginx Service ```yaml apiVersion: v1 kind: Service metadata: name: nginx-service spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer ``` 使用 `kubectl` 命令部署: ```bash kubectl apply -f nginx-deployment.yaml kubectl apply -f nginx-service.yaml ``` 此方法支持多节点部署、负载均衡和自动恢复功能,适合生产环境[^2]。 --- ### 手动部署(适用于无编排工具的集群) 对于没有使用 Kubernetes 或 Docker Compose 的集群,可以在每个节点上手动运行 Nginx 容器。 ```bash docker run -d --name nginx \ -p 80:80 \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/logs:/var/log/nginx \ --restart=always \ nginx:latest ``` 此方法适用于节点数量较少、不需自动恢复和负载均衡的场景[^3]。 --- ### 高可用部署建议 - **负载均衡**:使用 HAProxy 或 Nginx 作为反向代理,将请求分发到多个 Nginx Pod 或容器。 - **持久化存储**:确保 Nginx 的配置文件和日志目录在宿主机上持久化,便于维护和故障恢复。 - **自动扩展**:在 Kubernetes 中可结合 Horizontal Pod Autoscaler 实现自动扩缩容。 - **健康检查**:配置 liveness 和 readiness 探针,确保服务的高可用性。 ---
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值