【保姆级教程】Linux 基于 Docker 部署 MySQL 和 Nacos 并配置两者连接

news2024/11/24 17:53:30

一、Linux 部署 Docker

1.1 卸载旧版本(如有)

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

1.2 安装 yum-utils 包

sudo yum install -y yum-utils

1.3 配置阿里云镜像仓库

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.4 安装 Docker Engine

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

1.5 启动 Docker

sudo systemctl start docker

1.6 查看 Docker 版本

docker --version

1.7 查看 Docker 服务状态

sudo systemctl status docker

1.8 配置阿里云镜像加速器

获取加速器地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

参考:https://docs.docker.com/engine/install/centos/

二、Linux 部署 MySQL

2.1 拉取 MySQL 镜像

docker pull mysql

2.2 查看本地镜像

docker images

2.3 创建目录存储数据信息

mkdir ~/mysql
cd ~/mysql

2.4 运行 MySQL 容器

docker run -id \
-p 3306:3306 \
--name mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql
参数说明
-v $PWD/conf:/etc/mysql/conf.d配置目录,将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf
-v $PWD/logs:/logs日志目录,将主机当前目录下的 logs 目录挂载到容器的 /logs
-v $PWD/data:/var/lib/mysql数据目录,将主机当前目录下的data目录挂载到容器的 /var/lib/mysql

2.5 查看 MySQL 容器运行状态

docker ps -a

三、Linux 部署 Nacos

3.1 拉取 Nacos 镜像

docker pull nacos/nacos-server

3.2 查看本地镜像

docker images

3.3 创建目录存储数据信息

mkdir ~/nacos
cd ~/nacos

3.4 创建 Nacos 数据库

  1. 远程连接上 MySQL 容器,并创建数据库,这里数据库命名 nacos_config
  2. 执行 sql 脚本,脚本地址:https://github.com/alibaba/nacos/blob/develop/distribution/conf/mysql-schema.sql

3.5 第一次运行 Nacos 容器(获取配置文件)

docker run -d \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.120.1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-p 8848:8848 \
--name nacos \
--restart=always \
nacos/nacos-server

参数说明:https://nacos.io/en-us/docs/quick-start-docker.html

192.168.120.1 为 Mysql 容器 ip 地址,获取 docker 所有容器 ip 地址命令:

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

3.6 创建目录并拷贝配置文件

mkdir ~/nacos/conf
docker cp nacos:/home/nacos/conf/application.properties ~/nacos/conf/
docker cp nacos:/home/nacos/conf/nacos-logback.xml ~/nacos/conf/

3.7 修改 application.properties 配置

# spring
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_APPLICATION_PORT:8848}

# 修改此行,将SPRING_DATASOURCE_PLATFORM的默认值""改为mysql
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:mysql}
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=${MYSQL_DATABASE_NUM:1}

# 修改此行,添加MYSQL_SERVICE_HOST的默认值为192.168.120.1,MYSQL_SERVICE_DB_NAME的默认值为nacos_config,修改MYSQL_SERVICE_DB_PARAM时区
db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:192.168.120.1}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true}

# 修改此行,添加MYSQL_SERVICE_HOST的默认值为192.168.120.1,MYSQL_SERVICE_DB_NAME的默认值为nacos_config,修改MYSQL_SERVICE_DB_PARAM时区
db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST:192.168.120.1}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true}

# 修改此行,添加MYSQL_SERVICE_USER的默认值为root
db.user=${MYSQL_SERVICE_USER:root}

# 修改此行,添加MYSQL_SERVICE_PASSWORD的默认值为root
db.password=${MYSQL_SERVICE_PASSWORD:root}
### 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/**}

采用添加默认值的方式,这样不会影响指定命令行的参数。

3.8 第二次运行 Nacos 容器

运行之前先删除之前启动的容器

docker stop nacos
docker rm nacos

重新运行容器

docker run -d \
-e MODE=standalone \
-e JVM_XMS=256m -e JVM_XMX=256m \
-p 8848:8848 \
-v ~/nacos/conf:/home/nacos/conf \
-v ~/nacos/logs:/home/nacos/logs \
-v ~/nacos/data:/home/nacos/data \
--name nacos \
--restart=always \
nacos/nacos-server

3.9 访问 Nacos

http://ip:8848/nacos

数据库写入登录用户名&密码

INSERT INTO users (username, password, enabled)
VALUES ('nacos', '${new_password}', TRUE);

将 ${new_password} 替换为经过 BCrypt 加密的新密码。加密工具可使用 Nacos 提供的 PasswordEncoderUtil 类,通过运行 Java 代码获取加密后的密码。

在线加密地址:https://www.bejson.com/encrypt/bcrpyt_encode/

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1834364.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解并打败C语言难关之一————指针(3)

前言&#xff1a; 昨天把指针最为基础的内容讲完了&#xff0c;并且详细说明了传值调用和传址调用的区别&#xff08;这次我也是做到了每日一更&#xff0c;感觉有好多想写的但是没有写完&#xff09;&#xff0c;下面不多废话&#xff0c;下面进入本文想要说的内容 目录&#…

JavaScript之内置对象

内置对象 JavaScript中的对象分为3种&#xff1a;自定义对象、内置对象、浏览器对象前面两种对象是javascript基础内容&#xff0c;属于ECMAScript&#xff1b;第三个浏览器对象属于我们javascript独有的&#xff0c;我们javascript API讲解 内置对象就是指javascript语言自带…

18.菜单logo制作

菜单logo制作 1. 在项目assets里面加入logo 2. layout下新建MenuLogo.vue组件 MenuLofo.vue <template><div class"logo"><img :src"MenuLogo" alt""><span class"logo-title">{{ title }}</span>…

docker怎么拉取全部镜像,打包所有镜像

因为docker&#xff0c;所以我把电脑上之前的镜像全部打包出来了 你们也可以打包&#xff0c;我提供一个脚本&#xff0c;你运行即可 export_docker.sh #!/bin/bash# 导出目录 EXPORT_DIR"docker_images_backup" mkdir -p "$EXPORT_DIR"# 获取所有镜像 …

Spring Boot集成websocket实现webrtc功能

1.什么是webrtc&#xff1f; WebRTC 是 Web 实时通信&#xff08;Real-Time Communication&#xff09;的缩写&#xff0c;它既是 API 也是协议。WebRTC 协议是两个 WebRTC Agent 协商双向安全实时通信的一组规则。开发人员可以通过 WebRTC API 使用 WebRTC 协议。目前 WebRTC…

MD8002D 3W单声道AB类音频功放芯片IC

芯片功能说明 MD8002D是一颗带关断模式的音频功放IC。在5V输入电压下工作时&#xff0c;负载(4Q)上的平均功率 为3W&#xff0c;且失真度不超过10%。而对于手提设备而言&#xff0c;当VDD作用于关断端时&#xff0c;MD8002D将会进入关断模式&#xff0c;此时的功耗极低…

智慧校园的构建要素是什么

在当今数字时代&#xff0c;智慧校园的构建已成为教育界的热门话题。随着技术的不断进步&#xff0c;学校不再只是传统的教学场所&#xff0c;而是一个充满智能化和创新的环境。那么&#xff0c;智慧校园的构建要素究竟是什么呢&#xff1f; 基础设施建设 高速、稳定的网络覆…

智慧校园的作用是什么?

在近几年&#xff0c;智慧校园以其独有的姿态&#xff0c;悄然改变着教育的面貌。想象一下&#xff0c;当物联网、大数据、人工智能这些前沿技术与传统校园深度融合&#xff0c;教育空间不再局限于实体教室&#xff0c;知识获取也不再受制于时间与地点&#xff0c;一个更加开放…

10份精选竞品分析报告,一文了解10个竞品

小伙伴们&#xff0c;继上周需求文档大放送之后&#xff0c;本周小编又精心整理了十份竞品分析文档给大家&#xff0c;十个竞品包括&#xff1a; ↘ ACFUN ↘ Keep ↘ POP IM ↘ Soul APP ↘ 网易云音乐 ↘ 微信读书 ↘ 悟空问…

八个精品ETL工具,总有一款适合您的业务需求!

在数字经济高速发展的今天&#xff0c;数据的价值愈发凸显。ETL&#xff08;Extract, Transform, Load&#xff09;工具作为数据集成的关键一环&#xff0c;不仅帮助企业高效管理海量数据&#xff0c;还能为商业决策提供实时洞察。本文将深入探讨目前市场上的8款领先ETL工具&am…

Export S parameter sweep data 导出 S 参数扫描代码

Export S parameter sweep data 导出 S 参数扫描代码 正文正文 相信有不少小伙伴们会比较苦恼一件事情,就是 Lumerical Script 中的绘图并不智能。功能较为简陋以至于图像展现时不够美观,因此,很多时候我们需要将仿真数据导出使用。那么如何导出仿真数据呢?在 Lumerical S…

基于WPF技术的换热站智能监控系统17--项目总结

1、项目颜值&#xff0c;你打几分&#xff1f; 基于WPF技术的换热站智能监控系统01--项目创建-CSDN博客 基于WPF技术的换热站智能监控系统02--标题栏实现-CSDN博客 基于WPF技术的换热站智能监控系统03--实现左侧加载动画_wpf控制系统-CSDN博客 基于WPF技术的换热站智能监…

深度学习 --- stanford cs231学习笔记四(神经网络的几大重要组成部分)

训练神经网络1 1&#xff0c;激活函数&#xff08;activation functions&#xff09; 激活函数是神经网络之于线性分类器的最大进步&#xff0c;最大贡献&#xff0c;即&#xff0c;引入了非线性。 1&#xff0c;1 Sigmoid sigmoid函数的性质&#xff1a; 结合指数函数的图像可…

路由策略和策略路由实践

文章目录 路由策略&策略路由实验一、实验概述&#xff08;1&#xff09;、实验要求 二、实验实施&#xff08;1&#xff09;、路由器配置-AR1接口IP地址OSPF配置策略路由路由策略 &#xff08;2&#xff09;、路由器配置-AR2接口IP地址OSPF配置 &#xff08;3&#xff09;、…

如何快速提高自己的论文写作水平?

以下是一些可以帮助快速提高论文写作水平的方法&#xff1a; 广泛阅读&#xff1a; - 阅读大量优秀的论文&#xff0c;包括本领域权威期刊的文章&#xff0c;学习其结构、思路、论证方法和语言表达。 - 同时阅读相关的专业书籍&#xff0c;拓宽知识储备。 确定清晰的结构&am…

国际期货投机交易的常见操作方法:

一、在开仓阶段&#xff0c;入市时机的选择&#xff1a; &#xff08;1&#xff09;通过基本分析法&#xff0c;判断市场处于牛市还是熊市 开仓阶段&#xff0c;入市时机的选择&#xff1a;当需求增加、供给减少&#xff0c;此时价格上升&#xff0c;买入期货合约&#xff1b…

【JS】上传文件显示文件的为空,显示的文件参数内容只有uid

上传的文件参数file里面只包含uid&#xff0c;没有其他信息 例子解决办法 例子 例如使用elment ui的el-upload组件上传文件&#xff0c;会导致上传的文件参数file里面只包含uid&#xff0c;没有其他信息&#xff0c;如图&#xff1a; 正确应为如下图&#xff1a; 解决办法 …

XX市政府数据交换共享平台—技术方案(812页WORD)

方案介绍&#xff1a; 该方案紧紧围绕建设数据强市的总目标&#xff0c;坚持“先行先试、鼓励创新、宽容失败&#xff0c;政府引导、市场主导&#xff0c;加强统筹、优化布局&#xff0c;注重安全&#xff0c;有序推进”的原则&#xff0c;通过三大体系、七大平台、十大工程的…

19.面包屑导航制作

面包屑导航制作 官网&#xff1a;组件 | Element 1. 在layout下新建BreadCrumb.vue BreadCrumb.vue <template><div class"bread-text"><el-breadcrumb class"bred"separator"/"><el-breadcrumb-item v-for"item in…

ARDUINO NRF24L01

连线 5v 3.3皆可 gnd Optimized high speed nRF24L01 driver class documentation: Optimized High Speed Driver for nRF24L01() 2.4GHz Wireless Transceiver 同时下载同一个程序 案例默认引脚ce ces &#xff0c;7&#xff0c;8 可以 修改为 9,10 安装库 第一个示例 两…