Docker 安装 Nacos 2.1.1(单机版)

一、拉取镜像

docker pull nacos/nacos-server:v2.1.1

二、新建数据库

官网上下载 对应版本的 nacos zip 包,在 nacos\conf 目录下有 mysql脚本:

新建一个数据库 nacos_config,在数据库中依次执行 nacos-mysql.sql、1.4.0-ipv6_support-update.sql

三、创建用户

-- 创建用户
CREATE USER 'nacos'@'%' IDENTIFIED BY 'nacos';
-- 授予用户对 nacos_config 数据库的所有权限
GRANT ALL PRIVILEGES ON nacos_config.* TO 'nacos'@'%';
-- 刷新权限
FLUSH PRIVILEGES;

四、启动容器

如果 mysql 跟 nacos 都用 docker 安装在同一台虚拟机,有两种方式启动:

4.1、使用 mysql 虚拟IP

  • 使用命令查出 mysql 虚拟IP
docker inspect mysql | grep IP

  • 启动 nacos 时指定这个IP
docker run -d \
--name nacos \
--restart=always \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.17.0.2 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=nacos \
-e MYSQL_SERVICE_PASSWORD=nacos \
-v /home/nacos/logs:/home/nacos/logs \
nacos/nacos-server:v2.1.1
  • -d:以守护进程模式在后台运行容器。
  • --name nacos:为容器指定名称为 nacos,方便后续管理。
  • --restart=always:它表示无论容器因为何种原因退出(包括正常退出和异常退出),Docker 守护进程都会自动重启该容器。比如当服务器重启、容器内部服务崩溃导致容器退出等情况发生时,容器都能自动重新启动,以提高容器内服务的可用性。
  • -p [宿主机端口]:[容器端口]
  • -p 8848:8848:将容器内 Nacos 服务默认的 HTTP 端口 8848 映射到主机的 8848 端口。
  • -p 9848:9848 和 -p 9849:9849:用于 Nacos 集群通信的端口映射。
  • -e MODE=standalone:指定以单机模式启动 Nacos。
  • -e SPRING_DATASOURCE_PLATFORM=mysql:指定使用 MySQL 作为数据源。
  • -e MYSQL_SERVICE_HOST=172.17.0.2:指定 MySQL 服务器的主机地址(注意不能写 127.0.0.1)。
  • -e MYSQL_SERVICE_PORT=3306:指定 MySQL 服务器的端口号。
  • -e MYSQL_SERVICE_DB_NAME=nacos_config:指定 Nacos 使用的数据库名称。
  • -e MYSQL_SERVICE_USER=nacos:指定连接 MySQL 的用户名。
  • -e MYSQL_SERVICE_PASSWORD=nacos:指定连接 MySQL 的密码。
  • -v /home/nacos/logs:/home/nacos/logs:将宿主机 /home/nacos/logs 目录挂载到容器内 /home/nacos/logs 日志目录,方便查问题。

这种方式适合于 mysql 容器已经创建,且没有创建网络的情况,当 mysql 容器重启时,IP 是会变的,这个时候,nacos 就连不上了。

4.1、使用容器网络

  • 创建一个新的容器网络
docker network create mysql_nacos_network

这将允许你连接多个容器到同一个网络中,从而它们可以相互通信。这里的 mysql_nacos_network 是你的自定义网络的名字,你可以根据需要更改它。

  •  启动容器并连接到自定义网络

当你启动容器时,可以使用 --network 参数指定该容器应该加入到哪个网络中。

启动 MySQL 容器

docker run -d \
--name mysql \
--restart=always \
--network mysql_nacos_network \
-p 3306:3306 \
--privileged=true \
-v /home/mysql/log:/var/log \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0.30

 启动 Nacos 容器

docker run -d \
--name nacos \
--restart=always \
--network mysql_nacos_network \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=mysql \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=nacos \
-e MYSQL_SERVICE_PASSWORD=nacos \
-v /home/nacos/logs:/home/nacos/logs \
nacos/nacos-server:v2.1.1

一旦两个容器都连接到了同一个 Docker 自定义网络,它们就可以通过容器名称直接相互访问了。例如,在上面的例子中,Nacos 容器可以通过 mysql 这个名称来访问 MySQL 容器,而不需要知道其具体的 IP 地址。

-e MYSQL_SERVICE_HOST=mysql

这种方法不仅简化了容器之间的网络配置,还提高了可读性和维护性。此外,当某个容器重启后,它的 IP 地址可能会改变,但是容器名称不会变,因此使用名称来进行容器间通信更加稳定可靠。

  • 查看网络连接情况
docker network inspect mysql_nacos_network

可以看到两个容器都在同一网络。

  • nacos ping mysql
docker exec nacos ping mysql

 可以 ping 通,说明网络没问题。

五、访问控制台

使用 nacos 默认账户名、密码 nacos/nacos

六、使用内置数据库

docker run -d \
--name nacos \
--restart=always \
--network mysql_nacos_network \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=standalone \
nacos/nacos-server:v2.1.1

 如果不想连接外部数据库,可以使用内置数据库快速启动 nacos。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大模型开发(五):P-Tuning项目——新零售决策评价系统(下)

P-Tuning项目——新零售决策评价系统(下) 0 前言1 P-Tuning原理2 数据处理 0 前言 上篇文章我们介绍了使用PET方式微调BERT模型,PET属于提示词微调的一种,另一种比较常见的提示词微调是P-Tuning,我们今天在相同的项目…

.net 与 Pythonnet库的使用心得

python脚本使用.net 准备工作 安装pythonnet库 pip install pythonnet 查看是否安装了clr库 pip list | findstr clr 如果报错 module clr has no attribute AddReference 卸载clr pip uninstall clr 测试脚本 import clr clr.AddReference(System.Windows.Forms) from Syste…

Geo3D建筑材质切换+屋顶纹理

一、简介 基于Threejs开发封装建筑渲染管线,利用简单二维建筑矢量面轮廓程序化生成3D建筑,支持材质一键切换,支持多样化建筑墙面材质和屋顶材质,支持建筑透明,支持地形高程适配,支持按空间范围裁剪挖洞等。…

Windows 系统 Docker Desktop 入门教程:从零开始掌握容器化技术

文章目录 前言一、Docker 简介二、Docker Desktop 安装2.1 系统要求2.2 安装步骤 三、Docker 基本概念四、Docker 常用命令五、实战:运行你的第一个容器5.1 拉取并运行 Nginx 容器5.2 查看容器日志5.3 停止并删除容器 六、总结 前言 随着云计算和微服务架构的普及&…

以太网口的协议与电路波形

一直有一个疑问,MCU通过SPI协议与一个以太网芯片通信,这个芯片直接将其转化为了以太网所需的电平和协议标准,这其中发生了什么,开发者有需要关注哪些方面呢? 先看以太网模块的设计: 可以看到也是MCU和以太…

Uniapp 页面返回不刷新?两种方法防止 onShow 触发多次请求!

目录 前言1. 变量(不生效)2. 延迟(生效) 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 在 Uniapp 中,使用 onShow() 钩子来监听页面显示&#xff0…

数据结构--【顺序表与链表】笔记

顺序表 template <class T> class arrList :public List<T> //表示 arrList 类以公有继承的方式继承自 List<T> 类 //公有继承意味着 List<T> 类的公共成员在 arrList 类中仍然是公共成员&#xff0c;受保护成员在 arrList 类中仍然是受保护成员。 { …

LeetCode1137 第N个泰波那契数

泰波那契数列求解&#xff1a;从递归到迭代的优化之路 在算法的世界里&#xff0c;数列问题常常是我们锻炼思维、提升编程能力的重要途径。今天&#xff0c;让我们一同深入探讨泰波那契数列这一有趣的话题。 泰波那契数列的定义 泰波那契序列 Tn 有着独特的定义方式&#xf…

小程序是否支持SSE

小程序目前没有直接支持SSE&#xff0c;但是有提供request的分块传输&#xff0c;但是使用分块去接收&#xff0c;读的这一次可能是一条json&#xff0c;也可能是json的一半&#xff0c;数据很难处理&#xff0c;建议还是使用小程序WebSocket来实现通信 代码示例&#xff1a; …

09第三方库的使用

1.下载第三方库源码 &#xff08;例如:jpeg解码库&#xff09; Independent JPEG Group 即下载jpeg的源码到电脑的每个文件中&#xff08;要记得是下载到哪里了&#xff09;然后登陆ubantu中建立一个文件将源码cp到该文件中&#xff0c;然后第一步解压源码&#xff0c;第二步…

【前端】webstorm创建一个导航页面:HTML、CSS 和 JavaScript 的结合

文章目录 前言一、项目结构二、HTML 结构三、CSS 样式四、JavaScript 功能五、现代化风格优化htmlcssjavascript运行效果 总结 前言 在现代网页开发中&#xff0c;一个良好的导航栏是提升用户体验的重要组成部分。在这篇文章中&#xff0c;我将向您展示如何创建一个简单而完整…

licheepi nano usb RNDIS连接外网方法及使用

文章目录 前言一、准备操作二、链接外网步骤1.安装g_ether驱动2.修改ip3.连接外网4.进一步配置DNS5.使用外网&#xff08;debian系统&#xff09;6.licheepi nano镜像源选择&#xff08;debian系统&#xff09; 总结 前言 前序内容使用licheepi nano 连接到了PC&#xff0c;可…

视频理解开山之作 “双流网络”

1 论文核心信息 1.1核心问题 任务&#xff1a;如何利用深度学习方法进行视频中的动作识别&#xff08;Action Recognition&#xff09;。挑战&#xff1a; 视频包含时空信息&#xff0c;既需要捕捉静态外观特征&#xff08;Spatial Information&#xff09;&#xff0c;也需要…

ARMv8寄存器的介绍

一、寄存器的作用 寄存器是CPU的内部组成单元&#xff0c;是CPU运算时取指令和数据最快的地方。它可以用来暂存指令、数据和地址。在CPU的控制部件中&#xff0c;包含的寄存器有指令寄存器&#xff08;IR&#xff09;和程序计数器&#xff08;PC&#xff09;。CPU的算术逻辑部…

步进电机软件细分算法解析与实践指南

1. 步进电机细分技术概述 步进电机是一种将电脉冲信号转换为角位移的执行机构&#xff0c;其基本运动单位为步距角。传统步进电机的步距角通常为 1.8&#xff08;对应 200 步 / 转&#xff09;&#xff0c;但在高精度定位场景下&#xff0c;这种分辨率已无法满足需求。细分技术…

【AD】5-12 Object元素的隐藏与显示

1.CtrlD进入Object显示界面&#xff0c;进行显示或隐藏

【 <一> 炼丹初探:JavaWeb 的起源与基础】之 Servlet 过滤器:实现请求的预处理与后处理

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、过滤器&…

Linux16-数据库、HTML

数据库&#xff1a; 数据存储&#xff1a; 变量、数组、链表-------------》内存 &#xff1a;程序运行结束、掉电数据丢失 文件 &#xff1a; 外存&#xff1a;程序运行结束、掉电数据不丢失 数据库&#xff1a; …

uniapp实现的个人中心页面(仿小红书)

采用 uniapp 实现的一款仿小红书个人中心页面模板&#xff0c;支持vue2、vue3, 同时适配H5、小程序等多端多应用。 简约美观大方 可到插件市场下载尝试&#xff1a; https://ext.dcloud.net.cn/plugin?id22516 示例

【运维篇】KubeSphere-02(经验汇总)

一、使用建议 1.对于数据库、对像存储比较重的要不能丢失&#xff0c;有异地存储备份需求的有状态服务&#xff0c;不建议采用k8s进行部署&#xff0c;会导致运维难度更大。 2.对于中间件如redis、MQ、harbor、seata、nacos、zookeeper可采用k8s部署。 3.对于无状态服务tomc…