首页 > 其他分享 >Docker安装nacos(配置文件映射)

Docker安装nacos(配置文件映射)

时间:2024-01-11 10:24:35浏览次数:35  
标签:容器 配置文件 nacos 8848 conf docker data Docker

1、拉取镜像

docker pull nacos/nacos-server

PS:这是拉取最新的nacos版本,若是要拉取指定版本,则可以在后面加上版本号(如:docker pull nacos/nacos-server:v2.2.0)

2、创建存储nacos数据信息的目录

在根目录下创建/data/docker/nacos目录,用于挂载存储nacos的数据信息

mkdir /data/docker/nacos -p

ps:-p 作用是在创建多级文件时,不存在某一级文件就会自动创建,存在就使用原文件

3、nacos配置文件获取&修改

3.1、提前运行一个nacos容器

目的: 把nacos容器中的配置文件拷贝到宿主机中对应的目录下。

3.2、创建nacos容器

docker  run -d  --name nacos  \
-p 8848:8848  \
-p 9848:9848  \
-p 9849:9849  \
--privileged=true  \
--restart=always  \
-v /etc/localtime:/etc/localtime:ro  \
-e TZ=Asia/Shanghai \
-e LANG=en_US.UTF-8 \
-e JVM_XMS=256m  \
-e JVM_XMX=256m  \
-e MODE=standalone  \
nacos/nacos-server:v2.3.0

3.3、拷贝容器中的数据到宿主机对应的目录下

docker cp nacos:/home/nacos/conf /data/docker/nacos/conf

3.4、停止&删除容器

docker rm -f nacos

4、修改 application.properties 配置文件

编辑配置文件

vim /data/docker/nacos/conf/application.properties

一般主要修改下面配置文件中标红部分

如果想要开启鉴权功能,可参照 https://www.cnblogs.com/shigzh/p/17954917
推荐开启如下配置

# 开启鉴权功能
nacos.core.auth.enabled=true
# 关闭使用user-agent判断服务端请求并放行鉴权的功能
nacos.core.auth.enable.userAgentAuthWhite=false
# 配置自定义身份识别的key和value,这两个属性是auth的白名单,用于标识来自其它服务器的请求。
nacos.core.auth.server.identity.key=shigzh
nacos.core.auth.server.identity.value=shigzh
# 自定义用于生成JWT令牌的密钥,注意:原始密钥长度不得低于32字符,且一定要进行Base64编码,否则无法启动节点。
nacos.core.auth.plugin.nacos.token.secret.key=bmFjb3NfMjAyNDAxMTBfc2hpZ3poX25hY29zX3Rva2Vu
# 权限缓存开关,开启后权限缓存的更新默认有15秒的延迟,默认 : false
nacos.core.auth.caching.enabled=true
# 数据库相关配置
db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:sgz.wz}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.user.0=${MYSQL_SERVICE_USER:root}
db.password.0=${MYSQL_SERVICE_PASSWORD:root@12345678}

5、初始化nacos数据库

5.1、用navicat创建数据库,库名为nacos

5.2、获取数据库脚本文件

有如下3种方式进行获取

  • 通过nacos容器目录/home/nacos/conf下获取数据库脚本文件mysql-schema.sql。
  • 通过宿主机目录/data/docker/nacos/conf下获取数据库脚本文件mysql-schema.sql。
  • 直接通过 https://www.cnblogs.com/shigzh/p/17941250 获取数据库脚本文件。

5.3、执行数据库脚本文件

6、运行容器

docker  run -d  --name nacos  \
-p 8848:8848  \
-p 9848:9848  \
-p 9849:9849  \
--privileged=true  \
--restart=always  \
-v /data/docker/nacos/logs/:/home/nacos/logs \
-v /data/docker/nacos/data/:/home/nacos/data \
-v /data/docker/nacos/conf/:/home/nacos/conf \
-v /etc/localtime:/etc/localtime:ro  \
-e TZ=Asia/Shanghai \
-e LANG=en_US.UTF-8 \
-e JVM_XMS=256m  \
-e JVM_XMX=256m  \
-e MODE=standalone  \
-e PREFER_HOST_MODE=hostname \
nacos/nacos-server:v2.3.0

命令说明

  • docker run -d :启动容器, -d 表示后台启动并返回容器id
  • –name nacos:为容器指定一个名称
  • -p 8848:8848 -p 9848:9848 -p 9849:9849

①指定端口映射,注意这里的p不能大写,大写是随机端口映射。
②“:”前为宿主机端口号,“:”后为容器端口号。
③nacos客户端2.x后增加了9848、9849这两个端口来进行gRPC通信,是主端口通过一定偏移量自动生成的(即8848 + 1000 和 8848 + 1001),如果nacos对外暴露的主端口是其它(默认是8848),那么这两个端口就需要用暴露的主端口分别+1000 和 +1001进行获取并暴露。
④9848端口,是指客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求,与主端口的偏移量为1000(即8848+1000)
⑤9849端口,是指服务端gRPC请求服务端端口,用于服务间同步等,与主端口的偏移量为1001(即8848+1001)

  • –privileged=true:扩大容器内的权限,将容器内的权限变为root权限,即获取宿主机root权限,不加的话就是普通用户权限,可能会出现cannot open directory
  • -e JVM_XMS=256m:为jvm启动时分配的内存
  • -e JVM_XMX=256m:为jvm运行过程中分配的最大内存
  • -e MODE=standalone:使用standalone(单机)模式,MODE值有cluster(集群)模式/standalone(单机)模式两种,MODE必须大写
  • -v /data/docker/nacos/logs/:/home/nacos/logs

将容器内的/home/nacos/logs目录挂载到宿主机的 /data/docker/nacos/logs,用于存储nacos日志文件。

  • -v /data/docker/nacos/data/:/home/nacos/data

将容器内的/home/nacos/data目录挂载到宿主机的 /data/docker/nacos/data,用于存储nacos数据文件。

  • -v /data/docker/nacos/conf/:/home/nacos/conf

将容器内的/home/nacos/conf目录挂载到宿主机的 /data/docker/nacos/conf,用于存储nacos配置文件。

  • –restart=always:当Docker重启时,容器能自动启动
  • nacos/nacos-server:启动容器的nacos镜像
  • PREFER_HOST_MODE:nacos集群访问模式,支持IP还是域名模式,这里配置为hostname(即域名模式,按域名解析),默认为ip

7、访问nacos

http://ip地址:8848/nacos/index.html
账号密码默认都是nacos

标签:容器,配置文件,nacos,8848,conf,docker,data,Docker
From: https://www.cnblogs.com/shigzh/p/17957863

相关文章

  • 关于华为网络设备中配置文件的理解
    基本概念涉及配置文件管理的基本概念有3个:当前配置、配置文件、下次启动的配置文件。(1)当前配置:设备内存中的配置信息称为设备的当前配置,它是设备当前正在运行的配置。显然,设备下电后或设备重启时,内存中原有的所有信息(包括配置信息)都会消失。(2)配置文件:包含设备配置信息的文件......
  • docker安装oracle并修改服务名修改字符集
    拉取镜像dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 创建容器dockerrun-d-p1521:1521--nameoracle11gregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g  查看容易dockerps-a 进入容器dockerexec-itoracle11gbash 切......
  • docker自建镜像&上装镜像
    创建一个文件名称:Dockerfile 内容:FROMopenjdk:8-jre #拉取openjdk:8-jre这个镜像ADD1center-1.0.jar app.jar #jar包放到和dockerfile同级EXPOSE8761   #端口ENTRYPOINT["java","-jar","/app.jar"]  #启动jar包命令 FROM[镜像:版本]:指定所依赖的基础......
  • docker安装tomcat
    Tomcat安装拉取镜像:dockerpulltomcat:8.5.46-jdk8-openjdk  [root@node~]#mkdir-p/data/tomcatcas/webapps[root@node~]#chmod-R777/data/tomcatcas/ 创建挂载路径容器  路径不对的话自己修改下dockerrun-d --namemy_web--restartalways-p808......
  • docker安装nginx
    Nginx安装 1、拉取镜像(不指定版本,默认最新版) dockerpullnginx  2、创建挂载目录     mkdir-p/data/nginx/conf    mkdir-p/data/nginx/logmkdir-p/data/nginx/html [root@localhostconf]#mkdir-p/data/nginx/html[root@localhostconf]#......
  • docker安装es
    Es安装拉取esdockerpullelasticsearch:6.6.1    启动dockerrun-p9200:9200-p9300:9300--namees6.6\-e"discovery.type=gold-application"\-eES_JAVA_OPTS="-Xms1024m-Xmx1024m"\-delasticsearch:6.6.1进入容器dockerexec-ites6.6......
  • docker可视化工具部署
    在线安装安装前最好自己安装docker 具体参考官网https://1panel.cn/docs/installation/online_installation/RedHat/CentOScurl-sSLhttps://resource.fit2cloud.com/1panel/package/quick_start.sh-oquick_start.sh&&shquick_start.sh Ubuntucurl-sSLhttps......
  • 基于 Docker 打造前端持续集成开发环境
    基于Docker打造前端持续集成开发环境写在前面:这不是一篇有新意的文章,因为这篇文章半年前我就发布在其他平台上过,为什么在知乎上旧文新发?除了想要把发布在其他地方的文章统一放到知乎上之外,还源于我最近在面试一些前端工程师时的一些疑惑,发现很多应聘高级前端岗的开发者对J......
  • docker compose 方式再次部署kodbox 可道云 nas服务
    本次dockercompsoe方式部署的可道云使用三个服务话不多说先上docker-compose.yml,着急的直接dockercomposeup-d运行version:'3.5'services:db:image:mariadbcommand:--transaction-isolation=READ-COMMITTED--binlog-format=ROWvolumes:-"/r......
  • 分布式机器学习的故事:Docker改变世界
    分布式机器学习的故事:Docker改变世界Docker最近很火。Docker实现了“集装箱”——一种介于“软件包”和“虚拟机”之间的概念——并被寄予厚望,以期革新Internet服务以及其他大数据处理系统的开发、测试、和部署流程。为了使用Docker,需要了解不少工具及其设计思路;而这些工具的文......