Docker之nacos的安装和使用

 🎉🎉欢迎来到我的CSDN主页!🎉🎉

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

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

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

 

前言

        在上一期的博客分享中我们分享了有关Nginx的安装和使用,当然我们知道上一期的博客分享的是使用Nginx实现负载均衡。本期的博客文章基于上一期的Docker之Nginx安装的基础上,本期的博客分享是安装使用nacos.

 一、nacos服务部署

1. 配置其数据库

        我们需要将之前的数据库的容器去除掉,重新新建一个数据库容器用于nacos服务部署。我们先在mysql下创建一个script文件夹

          我们创建一个对应的数据库容器。输入下述指令:

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

        我们这个数据库容器没有指定使用的网络,默认指定在bridge网桥网络模式中运行。 我们切换到script文件夹下,我们将要执行的数据库脚本复制到该文件目录下。

         我们然后进入到我们的数据库容器中,创建一个nacos服务的数据库,并且执行对应的数据库语句。

 

 

2. 配置nacos容器

2.1 下载nacos镜像

        我们首先下载我们nacos服务所需要的镜像文件夹

docker pull nacos/nacos-server    //下载镜像文件

2.2 运行nacos容器 

        首先我们要对其数据库进行授权

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

         我们运行一个容器启动nacos

docker run -itd \-e PREFER_HOST_MODE=ip \-e MODE=standalone \-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_SERVICE_HOST=172.17.0.2 \-e MYSQL_SERVICE_PORT=3306 \-e MYSQL_SERVICE_DB_NAME=nacos \-e MYSQL_SERVICE_USER=root \-e MYSQL_SERVICE_PASSWORD=123456 \-p 8848:8848 \--name nacos \--restart=always \nacos/nacos-server

         我们重新启动一下我们数据库容器,然后查看我们的nacos服务的容器是否成功启动。

指令:

docker restart 数据库容器名

docker logs 容器名

         记得开放我们的防火墙端口号

指令:

firewall-cmd --zone=public --add-port=8848/tcp   //开放端口号

firewall-cmd --zone=public --list-ports  //查看端口

firewall-cmd --reload      //刷新防火墙状态

        我们登陆进入界面,账号和密码都是nacos

        我们到配置管理中的配置列表随便添加一个配置用于我们测试。

         我们切入到我们的数据库容器中我们进行查看nacos数据库中的config_info表

        有数据说明我们的持久化成功的, 我们接下来将nacos容器去除掉,重新创建一个,再在我们的网页上访问。

二、集群部署nacos

        在执行命令之前先执行一个操作,因为我们的数据库容器和将要创建的nacos容器的网络不一样,因此让数据库容器对连接nacos的网络

docker network connect mynet m1

         接下来我们创建对应的nacos集群容器,指令如下

docker run -itd \-e PREFER_HOST_MODE=ip \-e MODE=cluster \-e NACOS_SERVER="172.20.0.102:8848 172.20.0.103:8848" \-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_SERVICE_HOST=m1 \-e MYSQL_SERVICE_PORT=3306 \-e MYSQL_SERVICE_DB_NAME=nacos \-e MYSQL_SERVICE_USER=root \-e MYSQL_SERVICE_PASSWORD=123456 \--name nacos01 \ --net mynet \--ip 172.20.0.101 \--restart=always \nacos/nacos-server

         我们查看一下nacos01的日志文件。

          我们删除掉该容器重新创建一个有映射端口的容器,创建之前去除之前的nacos容器。

docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.20.0.102:8848  172.20.0.103:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=m1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-p 8848:8848 \
--name nacos01 \
--net  mynet \
--ip  172.20.0.101 \
--restart=always \
nacos/nacos-server

        我们在网页上进行访问8848。 

         我们将另外两台也运行出来。

docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.20.0.101:8848  172.20.0.103:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=m1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
--name nacos02 \
--net  mynet \
--ip  172.20.0.102 \
--restart=always \
nacos/nacos-serverdocker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.20.0.101:8848  172.20.0.102:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=m1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
--name nacos03 \
--net  mynet \
--ip  172.20.0.103 \
--restart=always \
nacos/nacos-server

        我们再去网页进行刷新查看。 

        我们只有第一台的端口映射出来了,只有第一台在工作。  接下来我们进行部署Nginx容器。首先新建对应的文件夹。

指令:

mkdir  -p nginx

cd nginx/

mkdir conf.d

        我们在该文件目录下进行创建一个配置文件,配置我们的集群


upstream nacosList {  server nacos01:8848 weight=1; server nacos02:8848 weight=1; server nacos03:8848 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  /nacos {proxy_pass  http://nacosList;}}

         接下来就是创建我们Nginx负载均衡的容器

docker run -itd \
--name nginx \
-v /soft/nginx/conf.d:/etc/nginx/conf.d \
-p 80:80 \
--net mynet \
nginx

         我们在页面上直接访问http://www.zkingedu.com/nacos

       如果一致刷新没有变化,其实已经实现了负载均衡了。如果想要刷新有变化的话就在创建集群nacos时使用容器名。


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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/413456.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

肯尼斯·里科《C和指针》第6章 指针(1)

作为补充资料来学习吧。 6.1 内存和地址 前面提到,我们可以把计算机的内存看作一条长街上的一排房屋。每座房子都可以容纳数据,并通过一个房号来标识。这个比喻颇为有用,但也存在局限性。计算机的内存由数以亿万计的位(bit)组成,…

[Android] Android架构体系(2)

文章目录 Bionic精简对系统调用的支持:不支持 System V IPC:有限的 Pthread 功能:有限支持C:不再支持本地化和/或宽字符:Bionic新增的特性系统属性硬编码写死的UID/GID内置了DNS解析硬编码写死的服务和协议 硬件抽象层Linux内核匿名共享内存(ASHMem)Binder-BinderLoggerION 内存…

【经典算法】有趣的算法之---粒子群算法梳理

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 粒子群算法 粒子群算法(Particle Swarm Optimization,PSO)是一种用于解决优化问题的元启发式算法。它通过模拟鸟群或…

什么是车载信息娱乐系统和集成驾驶舱

什么是车载信息娱乐系统(IVI)? “车载信息娱乐(IVI)”通过向驾驶员和乘客提供信息和娱乐,为驾驶提供便利和舒适。为了理解这个概念,有必要知道“信息娱乐”的含义。“信息娱乐”是这个市场中使用的一个词,它结合了“信息”和“娱乐”两个词…

编译FFmpeg4.3.1 、x264并移植到Android

1、前言 FFmpeg 既是一款音视频编解码工具,同时也是一组音视频编解码开发套件。 2、准备工作 系统:LinuxNDK:android-ndk-r21b-linux-x86_64.zipFFmpeg:ffmpeg-snapshot.tar.bz2x264:x264 3、下载NDK 在linux环境中…

存内计算技术打破常规算力局限性

说明: 本文撰写人:三掌柜666 由三掌柜666原创首发:https://blog.csdn.net/CC1991_/article/details/135623056 文章目录 前言关于存内计算1、常规算力局限性2、存内计算诞生记3、存内计算核心 存内计算芯片研发历程及商业化1、存内计算芯片研…

Unix时间戳

时间戳,相信很多相关专业的人,计算机软件电子等等都会听过。由于最早是由Unix系统使用所以又叫Unix时间戳。 Unix 时间戳(Unix Timestamp)定义为从UTC(世界协调时)/GMT(格林尼治时)…

【Java】SpringBoot快速整合Redis

什么是Redis? 文末有源码gitee地址 【面试】浅学Redis_redis 广播-CSDN博客 Redis是一种高性能开源的基于内存的,采用键值对存储的非关系型数据库,它支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等。Redis的特点之…

机器学习--Matplotlib

机器学习–Matplotlib Matplotlib 是专门用于开发2D图表(包括3D图表)以渐进、交互式方式实现数据可视化 简单的Matplotlib画图 — 以折线图为例 matplotlib.pyplot模块 matplotlib.pytplot包含了一系列类似于matlab的画图函数。 import matplotlib.pyplot as plt图形绘制流…

STM32入门教程-2023版【4-1】OLED调试工具

关注 点赞 不错过精彩内容 大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 一、概述 在这一节先提前介绍一下,在以后的教程中我们会经常用到这个显示屏&#xff0…

HCIA的访问控制列表ACL

ACL -----access control-list 允许/拒绝 ACL作用: 1.实现访问控制 2.定义感兴趣流量 ACL分类: 标准ACL 2000-2999(只关注源IP地址,使用时应该尽量靠近目标) 扩展ACL 3000-3999:写ACL不能写在源上&…

Java基础知识整理,注释、关键字、运算符

写在开头 万丈高楼平地起,要想学好汉语首先学拼音,想学好英语首先学26个字母,对于编程语言来说,一样的道理,要想学好必须先掌握其基础语法和知识,今天我们就来唠一唠Java语言中那些出现频率极高&#xff0…