Nacos Docker 部署

以下内容整理自我自己在部署过程中的笔记,因此很多铺垫性质的内容东西没提或者没有细说,可以参考官方主页/ github 仓库的文档。

官方文档

Dokcer Hub

docker run --name nacos-quick -e MODE=standalone -p 8849:8848 -d nacos/nacos-server:2.0.2

当然这样运行肯定应该也是跑得起来的,但是其实背后有很多配置内容。我还没具体去看源码还不清楚默认的配置是什么,而且在我已经用 docker 起了一个 mysql 容器的情况下我倾向于把 nacos 连到我自己起的数据库上。

Nacos 主页

Nacos Docker 快速开始

nacos-docker/README_ZH.md at master · nacos-group/nacos-docker (github.com)

官方页面关于 Docker 启动 nacos-server 其实简化了大量内容……一个写好的 docker compose yaml 文件,装好 docker compose 一行命令就能启动了,配置项、mysql 、两个容器之间的网络打通……通通不用考虑。

只是研究使用的话这样启动一个就好,挺舒服的(不用像我一样被官方文档的简略和语焉不详折磨),但是一方面我比较想多摸索一点,另一方面我已经起了一个 mysql 的容器,没必要再让它起一个 mysql (毕竟买的云服务器资源也有限)

网络教程

网络上找到的相关教程一般都会提到映射配置文件(和日志目录)至宿主机,官方的 github 文档也提到这个特性,但是在某次提交中被删除线了,也没有对应说明。所以不太清楚是这个特性新版本被移除了 / 还是 @Deprecated 了 / 还是不建议使用

这次部署我还是选择了把配置用环境变量打进去。

最终

启动 nacos

启动命令如下

docker run --name nacos \
	-e MODE=standalone \
	-e SPRING_DATASOURCE_PLATFORM=mysql \
	-e MYSQL_SERVICE_HOST={{MYSQL_CONTAINER_NAME}} \
	-e MYSQL_SERVICE_DB_NAME={{DB_NAME}} \
	-e MYSQL_SERVICE_PORT=3306 \
	-e MYSQL_SERVICE_USER={{USER}} \
	-e MYSQL_SERVICE_PASSWORD={{PASSWORD}} \
	-p 8848:8848 \
	-d nacos/nacos-server

具体环境变量含义(及默认值)上面官方文档或者去 nacos-docker 的 github 看,在这里就不当二传手了,况且这里用到的环境变量名也挺直白。

nacos & mysql 网络打通

如果像上面一样启动了 nacos (当然 mysql 也要启动好),会发现输入相关地址还是无法访问。google/bing 了半天也没找到解决方案,最后还是自己进容器读日志发现的问题(所以说求人不如求己)。

因为是在 nacos 和 mysql 物理上是分别在两个 container 里,首先如果使用 localhost/127.0.0.1 nacos 肯定是连不到 mysql 的。需要使用 mysql 所在的 container 所在的 内部 ip 。但是感觉这样很麻烦也不够优雅,所以可以通过 docker network 命令创建桥接网络,这样就能够使用容器名 DNS 解析到对应容器 ip 了。

关于 Docker 的桥接网络具体的细节暂时也没去深入了解,只是简单查了下进行了配置:

docker network create mysql-net
# 创建桥接网络 mysql-net

docker network connect mysql-net mysql
# 容器 mysql 连入 mysql-net

docker network connect mysql-net nacos
# 同上,nacos

docker network inspect mysql-net
# 配置完后容器运行起来使用该命令查看该桥接网络下容器信息

访问 nacos

image

posted @   C_BC  阅读(737)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示