您的位置:首页 > 游戏 > 游戏 > Docker - Nacos

Docker - Nacos

2024/12/23 14:55:18 来源:https://blog.csdn.net/mrathena/article/details/141157827  浏览:    关键词:Docker - Nacos

博文目录

文章目录

  • 说明
  • 命令


说明

Docker Hub Nacos
GitHub Nacos
官网中文文档
官网英文文档 镜像环境变量
官网英文文档 单机部署

数据卷数据卷印射在容器内的路径
nacos.conf/home/nacos/conf
nacos.log/home/nacos/logs
容器内的路径说明
/home/nacos/conf/application.properties配置文件
/home/nacos/conf/nacos-logback.xml配置文件
/home/nacos/logs/nacos.log主程序日志文件

命令

# 当前 latest 版本为 2.4.0.1
docker pull nacos/nacos-server
docker network create network

先快速启动一次 Nacos, 以便生成 Volume nacos.conf 并在其中生成数据

docker run -d --name nacos -e MODE=standalone -v nacos.conf:/home/nacos/conf nacos/nacos-server:latest

然后执行 docker stop nacos 停止容器, 执行 docker rm nacos 删除容器

Nacos 的数据保存在数据库中, 可以选 Derby / MySQL, 这里用 MySQL, 需要提前执行数据库初始化脚本

Apache Derby 是一个开源的关系型数据库管理系统(RDBMS)。它是用 Java 编写的,支持嵌入式和客户端/服务器模式。Derby 设计轻量,易于嵌入到 Java 应用程序中,适用于小型应用和开发测试环境。它具有 SQL 支持、事务处理能力,并且可以与 Java 数据库连接(JDBC)兼容。

到 nacos.conf 中, 拿到初始化数据库的 SQL 文件 mysql-schema.sql, 在 MySQL 中新建 nacos 数据库并执行初始化脚本

到 nacos.conf 中, 修改配置文件 application.properties, 以下是有修改过的配置项

spring.sql.init.platform=mysqldb.num=1
# 我这里 domain/ip 写的是 mysql, 是因为我的 mysql 也是 docker 启动的, 且容器名称就是 mysql
# mysql 和 nacos 都加入了同一个网络, 容器间即可通过容器名称替代 domain/ip 来互相访问了
db.url.0=jdbc:mysql://mysql:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
db.user.0=root
db.password.0=Mrv587..# 用于生成JWT令牌的密钥, JWT令牌用于登录控制台使用
# abcdefghijklmnopqrstuvwxyz-coder, 至少32位, 且用 Base64 编码
# 2.2.0.1 起无默认值, 启用鉴权后, 必须指定该配置, 不指定无法启动
nacos.core.auth.plugin.nacos.token.secret.key=YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXotY29kZXI=# 开启鉴权功能后,服务端之间的请求也会受到鉴权系统的影响。
# 所有集群均需要配置相同的server.identity信息,否则可能导致服务端之间数据不一致或无法删除实例等问题。
nacos.core.auth.server.identity.key=nacos-key
nacos.core.auth.server.identity.value=nacos-value

Nacos 鉴权文档

通过 -e MODE=standalone 指定以单机方式启动, 通过 -e NACOS_AUTH_ENABLE=true 指定开启鉴权(默认未开启), 启动 Nacos 容器

docker run -d --name nacos --network network -p 8848:8848 -p 9848:9848 -e TZ=Asia/Shanghai -e MODE=standalone -e NACOS_AUTH_ENABLE=true -v nacos.conf:/home/nacos/conf -v nacos.log:/home/nacos/logs nacos/nacos-server:latest

访问 http://localhost:8848/nacos

初次访问时, 要求初始化默认用户名 nacos 的密码, 填写合适的密码即可, 会在 users 表中添加一条数据

# 查看日志
docker logs nacos
# 跟踪日志
docker logs -f nacos
docker logs --follow nacos
# 查看最后10条日志
docker logs --tail 10 nacos
# 查看最近10分钟的日志
docker logs --since 10m nacos
# 进入容器并执行 bash
docker exec -it nacos bash
# 退出容器
exit

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com