博文目录
文章目录
- 说明
- 命令
说明
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