Docker - 安装Nacos并持久化配置到MySQL篇

Nacos安装

Step 1:拉取Nacos镜像

docker pull nacos/nacos-server:1.4.1

Step 2: 创建宿主机文件路径(文件夹)用于挂载(映射)Nacos容器内的数据

2-1 先创建文件夹

mkdir -p  /opt/nacos/init.d/
mkdir -p /opt/nacos/logs

2-2 创建文件

touch custom.properties

2-3 custom.properties内容如下

#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for prometheus
management.endpoints.web.exposure.include=*

# metrics for elastic search
#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

# metrics for influx
#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true

Step 3: 运行Nacos镜像(单机模式)

docker run -d -p 8848:8848 --restart=always -e MODE=standalone \
-v /opt/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
-v /opt/nacos/logs:/home/nacos/logs \
--name my-nacos nacos/nacos-server:1.4.1

Step 4: Nacos配置持久化到MySQL

4-1 进入容器

docker exec -it nacos容器id bash  来修改nacos持久化配置

4-2 编辑application.properties

vim /home/nacos/conf/application.properties


# spring
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_APPLICATION_PORT:8848}
### The auth system to use, currently only 'nacos' is supported:
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}


### The token expiration in seconds:
nacos.core.auth.default.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}

### The default token:
nacos.core.auth.default.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey012345678901234567890123456789012345678901234567890123456789}

### 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}
nacos.core.auth.enable.userAgentAuthWhite=${NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE:false}
nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:serverIdentity}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:security}
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D
# default current work dir
server.tomcat.basedir=
## 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
nacos.naming.data.warmup=true

# 这里配置mysql的连接
spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://10.83.43.39:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=NQULaJwY7u

4-3 退出容器 重启容器

[root@24a9fb62eb0f conf]# exit
docker restart 容器ID

Step 5: 访问

http://localhost:8848/nacos/#/login

在这里插入图片描述

MySQL安装

Step 1: 拉取MySQL镜像

docker pull mysql:5.7.34

Step 2: 创建MySQL文件路径用于挂载

/opt/mysql/conf
/opt/mysql/data
/opt/mysql/logs

PS:启动的时候可以设置环境变量来设置数据库密码

MYSQL_ROOT_PASSWORD :root的密码
MYSQL_USER :建一个普通用户
MYSQL_PASSWORD :普通用户的密码

Step 3: 运行MySQL镜像

docker run -p 3306:3306 --name tgy-mysql  --restart=always  --network=common-tgy-network \
-v /opt/mysql/conf:/etc/mysql/mysql.conf.d \
-v /opt/mysql/logs:/logs \
-v /opt/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.34

Step 4: 更新Root用户密码

4-1: 进入容器

docker exec -it mysql容器id bash  

4-2: 登录MySQL

mysql -uroot -p

4-3: 更新

update mysql.user set authentication_string=password('NQULaJwY7u') where user='root';

4-4: 更新完成后记得刷新

flush privileges;

端口开放

1、开放端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent   # 开放5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent  #关闭5672端口
firewall-cmd --reload   # 配置立即生效
 

2、查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports

3.、关闭防火墙
如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估
systemctl stop firewalld.service

4、查看防火墙状态
 firewall-cmd --state

5、查看监听的端口
netstat -lnpt

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BruceLee#666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值