准备工作:
1)已安装docker
2)数据库准备,演示使用MySql5.7版本
1、拉取
[root@Tseng-HW ~]# docker pull nacos/nacos-server:v2.2.1
v2.2.1: Pulling from nacos/nacos-server
2d473b07cdd5: Already exists
77c5a601c050: Pull complete
5fce895ad971: Pull complete
86555f63872e: Pull complete
801400643684: Pull complete
e63e427570f7: Pull complete
4343e9b5093f: Pull complete
61845c2b228d: Pull complete
520260df9bc4: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:7300018322cadf17e8f00256197b361559efa6ab52a101ad52fbcd4f775dc057
Status: Downloaded newer image for nacos/nacos-server:v2.2.1
docker.io/nacos/nacos-server:v2.2.1
[root@Tseng-HW ~]#
2、创建挂载目录
[root@Tseng-HW ~]# mkdir -p /data/nacos/conf
[root@Tseng-HW ~]# mkdir -p /data/nacos/logs
[root@Tseng-HW ~]# mkdir -p /data/nacos/data
3、启动nacos,复制配置文件到挂载目录,备份配置文件、删除启动的nacos
[root@Tseng-HW ~]# docker run --name nacos221 -d -p 8848:8848 -e MODE=standalone nacos/nacos-server:v2.2.1
5d9eecf4f9b5b5f138483fc711f4a4194b0d9d6d69ede4ad0a06e1fd711ee521
[root@Tseng-HW ~]# docker cp nacos221:/home/nacos/conf/ /data/nacos/
[root@Tseng-HW ~]# docker cp nacos221:/home/nacos/logs/ /data/nacos/
[root@Tseng-HW ~]# docker cp nacos221:/home/nacos/data/ /data/nacos/
[root@Tseng-HW ~]# cd /data/nacos/conf/
[root@Tseng-HW conf]# ls
1.4.0-ipv6_support-update.sql application.properties derby-schema.sql mysql-schema.sql nacos-logback.xml
[root@Tseng-HW conf]# cp application.properties application_bk.properties
[root@Tseng-HW conf]# docker rm 5d9e
4、创建数据库、执行数据库脚本,数据库脚本两个路径
1)配置文件中:/data/nacos/conf 下的 application.properties 文件
[root@Tseng-HW ~]# cd /data/nacos/conf/
[root@Tseng-HW conf]# ls
1.4.0-ipv6_support-update.sql application_bk.properties application.properties derby-schema.sql mysql-schema.sql nacos-logback.xml
[root@Tseng-HW conf]#
2)GitHub地址
https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sqlhttps://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql 3)创建数据库,执行脚本
5、修改配置文件:application.properties
# spring
server.servlet.contextPath=/nacos
server.contextPath=/nacos
server.port=8848
server.tomcat.accesslog.max-days=30
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
server.tomcat.accesslog.enabled=false
# default current work dir
server.tomcat.basedir=file:.
#*************** Config Module Related Configurations ***************#
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
#spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:}
spring.sql.init.platform=mysql
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=1
# 注意替换数据库的地址、断开、数据库名称、用户名、密码
db.url.0=jdbc:mysql://****:3308/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
db.user.0=root
db.password.0=*****
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=nacos
# 是否开启鉴权功能,默认为false
nacos.core.auth.enabled=true
### worked when nacos.core.auth.system.type=nacos
### The token expiration in seconds: 用户登陆临时accessToken的过期时间
nacos.core.auth.plugin.nacos.token.expire.seconds=18000
### The default token: Base64加密前密码 TcmxJw05k$-_zcx.)8EtFC^D^F1W!IPr 加密网站:https://www.qqxiuzi.cn/bianma/base64.htm
nacos.core.auth.plugin.nacos.token.secret.key=VGNteEp3MDVrJC1femN4Lik4RXRGQ15EXkYxVyFJUHI=
### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=${NACOS_AUTH_CACHE_ENABLE:false}
# 关闭使用user-agent判断服务端请求并放行鉴权的功能
nacos.core.auth.enable.userAgentAuthWhite=false
# 用于替换useragent白名单的身份识别key,不可为空,2.2.1后无默认值
nacos.core.auth.server.identity.key=nacosKey
# 用于替换useragent白名单的身份识别value,不可为空,2.2.1后无默认值
nacos.core.auth.server.identity.value=nacosValue
## spring security config
### turn off security
nacos.security.ignore.urls=${NACOS_SECURITY_IGNORE_URLS:/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**}
# metrics for elastic search
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
nacos.naming.distro.taskDispatchThreadCount=10
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
6、启动nacos
[root@Tseng-HW conf]# docker run -d --name nacos221 --ip 外网/内网IP地址 -p 8848:8848 -p 9848:9848 -p 9849:9849 --restart=always --env MODE=standalone --env NACOS_AUTH_ENABLE=true -v /data/nacos/conf/:/home/nacos/conf -v /data/nacos/logs:/home/nacos/logs -v /data/nacos/data:/home/nacos/data nacos/nacos-server:v2.2.1
启动说明
docker run -d --name nacos221 \ -d 表示运行在后台,--name 指定名称为nacos221,我这里安装了多个版本的
--ip ***.***.***.*** \ 访问的IP 地址
-p 8848:8848 \ 前者为暴露给外部访问的端口,后者为nacos容器端口
-p 9848:9848 \ 9848是nacos2.0.0版本以上必须要加上端口映射
-p 9849:9849 \ 9849是nacos2.0.0版本以上必须要加上端口映射
--restart=always Docker 重启时,容器自动启动
--env MODE=standalone \ nacos以单机版启动,默认为cluster(集群)
--env NACOS_AUTH_ENABLE=true \ 如果使用官方镜像,请在启动docker容器时,添加如下环境变量
-v /data/docker/nacos/conf/:/home/nacos/conf \ nacos 配置文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
-v /data/docker/nacos/logs:/home/nacos/logs \ nacos 日志文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
-v /data/nacos/data:/home/nacos/data \ nacos 数据文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
nacos/nacos-server:v2.2.1 指定 docker nacos 版本,这里是2.2.1版本