Docker - 安装Nacos并持久化配置到MySQL篇
目录
- Nacos安装
- MySQL安装
-
- Step 1: 拉取MySQL镜像
- Step 2: 创建MySQL文件路径用于挂载
- Step 3: 运行MySQL镜像
- Step 4: 更新Root用户密码
-
- 4-1: 进入容器
- 4-2: 登录MySQL
- 4-3: 更新
- 4-4: 更新完成后记得刷新
- 端口开放
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 prometheusmanagement.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# springserver.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}server.contextPath=/nacosserver.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 dirserver.tomcat.basedir=## spring security config turn off securitynacos.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 searchmanagement.metrics.export.elastic.enabled=falsemanagement.metrics.export.influx.enabled=falsenacos.naming.distro.taskDispatchThreadCount=10nacos.naming.distro.taskDispatchPeriod=200nacos.naming.distro.batchSyncKeyCount=1000nacos.naming.distro.initDataRatio=0.9nacos.naming.distro.syncRetryDelay=5000nacos.naming.data.warmup=true# 这里配置mysql的连接spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://10.83.43.39:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.user=rootdb.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-ports3.、关闭防火墙如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估systemctl stop firewalld.service4、查看防火墙状态 firewall-cmd --state5、查看监听的端口netstat -lnpt