docker run \
--name nacos-roswu -d \
-p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
--mount source=nacos-logs,destination=/home/nacos/logs \
--mount source=nacos-conf,destination=/home/nacos/conf \
nacos/nacos-server
运行上分命令,运行nacos容器,可以不提前pull镜像,也不需要提前创建nacos-logs和nacos-conf两个volume,对-v和--mount相关的数据卷操作还不熟悉的,可以参考新出炉的用了这么久docker,今天才算是把容器数据卷搞清楚了
使用docker logs nacos-roswu查看容器运行日志
容器运行正常,接着可以到/var/lib/docker/volumes/nacos-conf/_data和/var/lib/docker/volumes/nacos-logs/_data两个目录下,查看和编辑nacos容器内映射的日志和配置。这里就不展示了。
使用http://宿主机ip:8848/nacos访问nacos控制台,如果是云服务器的话,需要查看8848端口是否开发。用户名和密码均为nacos

这里可以查看和监控配置中心和注册进来的服务信息。
创建一个springboot工程,
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.1.7.RELEASEversion>
<relativePath/>
parent>
<groupId>com.roswu.nacosgroupId>
<artifactId>nacos-demoartifactId>
<version>1.0.0.1-SNAPSHOTversion>
<name>nacos-roswuname>
<properties>
<java.version>1.8java.version>
<spring-cloud.version>Greenwich.SR2spring-cloud.version>
properties>
<dependencies>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-dependenciesartifactId>
<version>${spring-cloud.version}version>
<type>pomtype>
<scope>importscope>
dependency>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-alibaba-dependenciesartifactId>
<version>2.1.0.RELEASEversion>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
project>
bootstrap.yml,application.yml,application-dev.yml三个配置文件
server:
port: 8088
spring:
application:
name: nacosRoswu
profiles:
active: dev
cloud:
nacos:
discovery:
server-addr: nacos主机ip:8848 #配置Nacos地址
config:
server-addr: nacos主机ip:8848 #Nacos地址
file-extension: yml #这里我们获取的yaml格式的配置
management:
endpoints:
web:
exposure:
include: '*'
application.yml和application-dev暂时就空着吧,nacos启动时需要加载bootstrap.yml中的系统级别配置,所有相关的系统配置都放到了该文件中,application是项目级别的配置。
配置管理–》配置列表–》新增,随便添加了一个以下配置

这里要特别特别注意Data Id的命名,不能随意取,由这三部分拼接而成

编写一个controller
@RefreshScope
@RestController
@RequestMapping("/test")
public class TestController {
@Value("${test.hello}")
private String hello;
@GetMapping("/hello")
public String hello(){
return hello;
}
}
这里也要注意@RefreshScope注解,因为hello是成员属性,初始化一次后,每次值属性不会主动变,使用该注解后,可以根据nacos配置动态更新。
启动服务后,访问地址http://localhost:8088/test/hello
更新nacos配置后,刷新,显示的值可以动态更新。