Docker 环境下的 Nacos 持久化
Nacos 持久化
(环境:Win10 + Docker)
1、搭建 Docker 局域网
-
创建局域网:
PS C:\Users\xiaozy37528> docker network create myNetworkf26e19d32597aec0a762c2e7081f86de930aa885b90c983a78730af2a6a018e6
-
将 Nacos 和 MySQL 容器接入局域网:
docker network connect myNetwork MyNacosdocker network connect myNetwork mysql
-
查看局域网接入情况:
PS C:\Users\xiaozy37528> docker network inspect myNetwork[ { "Name": "myNetwork", "Id": "f26e19d32597aec0a762c2e7081f86de930aa885b90c983a78730af2a6a018e6", "Created": "2022-01-26T03:11:03.8063259Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.19.0.0/16", "Gateway": "172.19.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "3cdb8945aa49aee996e12417a22260b8a5d7ed28d609a93dcd73bd82f0efe23c": { "Name": "mysql", "EndpointID": "1ece17d728f830bfd4420b6b5c9d34c1b12c0e2ccac6d263c88dfdb6934aa5e7", "MacAddress": "02:42:ac:13:00:04", "IPv4Address": "172.19.0.4/16", "IPv6Address": "" }, "c824254e2a94bd32a5c216a0978e4ef7959cce6331a9ac220d75debd4593666c": { "Name": "nacos", "EndpointID": "a2119d6c6742bd886ec19e910c207c20011e532d25f9f8afb0b2f59533fda13d", "MacAddress": "02:42:ac:13:00:03", "IPv4Address": "172.19.0.3/16", "IPv6Address": "" } }, "Options": {}, "Labels": {} }]
-
验证 Nacos 容器与 MySQL 容器能否互相 ping 通:
(nacos ping mysql)
# ping 172.19.0.4PING 172.19.0.4 (172.19.0.4) 56(84) bytes of data.64 bytes from 172.19.0.4: icmp_seq=1 ttl=64 time=0.123 ms64 bytes from 172.19.0.4: icmp_seq=2 ttl=64 time=0.048 ms64 bytes from 172.19.0.4: icmp_seq=3 ttl=64 time=0.041 ms64 bytes from 172.19.0.4: icmp_seq=4 ttl=64 time=0.058 ms--- 172.19.0.4 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3153msrtt min/avg/max/mdev = 0.041/0.067/0.123/0.033 ms# ping mysqlPING mysql (172.19.0.4) 56(84) bytes of data.64 bytes from mysql.myNetwork (172.19.0.4): icmp_seq=1 ttl=64 time=0.040 ms64 bytes from mysql.myNetwork (172.19.0.4): icmp_seq=2 ttl=64 time=0.045 ms64 bytes from mysql.myNetwork (172.19.0.4): icmp_seq=3 ttl=64 time=0.096 ms64 bytes from mysql.myNetwork (172.19.0.4): icmp_seq=4 ttl=64 time=0.066 ms--- mysql ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3117msrtt min/avg/max/mdev = 0.040/0.061/0.096/0.024 ms
(mysql ping nacos)
# ping 172.19.0.2PING 172.19.0.2 (172.19.0.2) 56(84) bytes of data.64 bytes from 172.19.0.2: icmp_seq=1 ttl=64 time=0.076 ms64 bytes from 172.19.0.2: icmp_seq=2 ttl=64 time=0.051 ms64 bytes from 172.19.0.2: icmp_seq=3 ttl=64 time=0.036 ms64 bytes from 172.19.0.2: icmp_seq=4 ttl=64 time=0.039 ms--- 172.19.0.2 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 100msrtt min/avg/max/mdev = 0.036/0.050/0.076/0.017 ms# ping MyNginxPING MyNginx (172.19.0.2) 56(84) bytes of data.64 bytes from MyNginx.myNetwork (172.19.0.2): icmp_seq=1 ttl=64 time=0.037 ms64 bytes from MyNginx.myNetwork (172.19.0.2): icmp_seq=2 ttl=64 time=0.044 ms64 bytes from MyNginx.myNetwork (172.19.0.2): icmp_seq=3 ttl=64 time=0.066 ms64 bytes from MyNginx.myNetwork (172.19.0.2): icmp_seq=4 ttl=64 time=0.056 ms64 bytes from MyNginx.myNetwork (172.19.0.2): icmp_seq=5 ttl=64 time=0.068 ms--- MyNginx ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 133msrtt min/avg/max/mdev = 0.037/0.054/0.068/0.013 ms
2、创建 Nacos 数据库
-
获取 Nacos 数据库创建脚本
https://github.com/alibaba/nacos/blob/develop/config/src/main/resources/META-INF/nacos-db.sql
-
MySQL 执行脚本创建数据库
3、配置 Nacos 持久化
-
修改 Nacos 配置文件
spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://172.19.0.4:3306/nacos_test?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.user=rootdb.password=123456
-
重启 Nacos
4、验证配置效果
-
打开控制面板
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AozJhn3t-1643259630162)(markdown/Nacos实战 - 持久化.assets/image-20220126162001106.png)]
正常打开说明 Nacos 正常启动,如果之前有在 Nacos 上添加配置信息,可以发现配置信息现在看不到了,因为 Nacos 现在使用的是我们配置的 MySQL 数据库。
-
随便添加一些数据
-
检查数据是否被保存到 MySQL
数据成功保存到MySQL,说明 Nacos 持久化配置已经
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系