Docker之nacos的安装和使用

发布时间:2024年01月18日

?🎉🎉欢迎来到我的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-server

docker 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时使用容器名。


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

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

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

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

文章来源:https://blog.csdn.net/weixin_74352229/article/details/135682204
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。