背景和问题

  1. nacos是一个集配置中心与注册中心于一体的服务
  2. 它可以单机式部署,也可以集群式部署(要是用在生产环节的话,当然应该是集群式)
  3. 有官网,官网的文档有一定的帮助作用。
  4. 这里的目的是为了部署一个nacos服务使用,先部署单机的,再部署集群的。

​nacos官网​​​​docker-compose 官方文档,英文,不太好懂,慢慢看有点用​

目标

实现如下四个演化步骤

  • 场景一. rpm方式安装和部署单机nacos
  • 场景二. 多台(三台)机器分别安装和部署nacos集群及使用
  • 场景三. docker方式部署单机nacos
  • 场景四 4. docker-compose方式部署nacos集群

硬件条件

  1. windows10 电脑一台(假定性能很强),里面装了vmware,
  2. vmware中模拟出了多个CentOS 7.x系统,可放心操作。

涉及技能

  1. docker基本操作
  2. docker-compose基本操作及应用,docker-compose.yml文件的写法
  3. docker-compose 部署mysql、nacos
  4. linux基本操作及安装服务的常用操作

实操

传统方式

1. rpm安装nacos-server,并使用

​单机模式下运行Nacos​

包括使用内部数据源还是外部mysql,都有。

2. 集群方式安装nacos-server,并使用

​集群模式部署​

包括使用内部数据源还是外部mysql,都有。
这两种都非常常规,基本照做就成了,没有什么好说的。

此时需要同时启动几个虚拟机,一般的机器立马就卡得不行了。
现在流行的是容器,什么玩意都要用容器部署了才算完美。

容器方式

1. 容器方式部署传统nacos

​单机模式 Derby​

所需文件见此下载文件,里面的​​nacos-standalone.zip​​文件,我亲测成功。

docker方式部署nacos或nacos集群_容器部署nacos


下载地址(集群方式所需文件也有)

2. docker部署和启动带预置内容的mysql 5.7

有一个很好的参考文章。

​docker-compose部署MySQL​

从本文可以学到容器方式启动mysql,并且带有预置数据的方式。
亲测成功,而且预置的数据内容等还可以发挥一下。

3. 容器方式部署和启动nacos-server集群 (全文重点)

实际上,再这里之前有些前置要求,即需要对docker-compose.yml 文件的写法和用法有一定的了解,否则根本不知道自己在做什么,应该怎么做。
这个过程不一定容易。
但实际上如果掌握了这点,基本上用docker-compose部署什么都很容易的了

还有必要了解一定的docker常用命令及含义,如

docker network ls/create/rm/inspect
docker volume ls/create/rm/inpect

掌握这些命令是为了查看一些相关容器的信息,如ip地址之类的。

然后就可以进行一系列的配置

配置mysql,及mysql预置数据
配置mysql所需的、nacos所需的.env文件
配置nacos相关的配置文件,如 application.properties、cluster.conf等
最重要的,配置 docker-compose.yml 文件 (名字叫docker-compose.yml、compose.yml .yaml等都行)

其中,从 ​​官网文档跳转到github的某些配置文件​​ 这里面的文件,以及 .env文件等,都能学和领会到一些配置的含义和用法,建议仔细揣摩。

如下面几个图:

docker方式部署nacos或nacos集群_compose nacos_02


docker方式部署nacos或nacos集群_nacos集群_03

内容都配置完成后,最终就是一个docker-compose up命令就可以启动。
停止的时候就是 docker-compose down 。而且会把产生的container、network什么的一起删掉,几乎不留痕迹。

细说起来内容非常多,录了个屏,用这个视频来说明问题吧。
todo

再次提一下,所需文件都在上面的一个下载链接里,视频为证都成功了。

很多信息都在视频里

docker-compose部署nacos集群录屏

同一个视频,上面的是传到csdn
下面这个是传到B站的,显示效果天壤之别。
CSDN要好好想想了。

docker-compose部署nacos集群录屏

​视频地址​


最后,简单上个图,证明确实成功了。

docker方式部署nacos或nacos集群_docker-compose_04