Docker使用docker-compose一键部署nacos、Mysql、redis
下面是一个简单的例子,展示如何通过Docker Compose文件部署Nacos、MySQL和Redis。请确保您的机器上已经安装了Docker和Docker Compose。
1,准备好mysql、redis、nacos镜像
sudo docker pull mysql:8 && sudo docker pull redis:7.2 && sudo docker pull nacos/nacos-server:v2.4.3
2,如果因为网络问题,没有下载到,可以直接下载镜像包
- mysql:8镜像包
- redis:7.2镜像包
- nacos/nacos-server:v2.4.3镜像包
3,根据需求下载Docker镜像包,然后导入到Docker:
sudo docker load -i xxxx.tar
4,查看docker-compose 版本
sudo docker-compose -version
5,如果遇到以下情况,说明docker-compose没有安装:
6,docker-compose没有的话,则根据以下地址下载:
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
7,如果因为网络或者下载慢,可根据以下连接进行下载,然后放到服务器 /usr/local/bin下,以下是centos x86_64
- docker-compose
8,设置权限:
sudo chmod +x /usr/local/bin/docker-compose
9,创建符号链接(如果需要的话,这一步是可选的,用于将 Docker Compose 添加到 PATH 中,以便可以在任何位置运行它):
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
10,验证安装:
sudo docker-compose -version
11,创建nacos数据库SQL导入Dockerfile
sudo vi Dockerfile
FROM mysql:8
ADD https://raw.githubusercontent.com/alibaba/nacos/develop/distribution/conf/mysql-schema.sql /docker-entrypoint-initdb.d/nacos-mysql.sql
RUN chown -R mysql:mysql /docker-entrypoint-initdb.d/nacos-mysql.sql
EXPOSE 3306
CMD ["mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
12,创建Docker Compose文件
在工作目录下创建一个名为docker-compose.yml的文件:
sudo vi docker-compose.yml
version: '3.8'services:ncc-mysql:container_name: ncc-mysqlrestart: unless-stoppedbuild:context: .dockerfile: ./Dockerfileimage: mysql:8privileged: truevolumes:- /data/ncc/mysql:/var/lib/mysqlports:- 3306:3306environment:- TZ=Asia/Shanghai- MYSQL_ROOT_PASSWORD=mysql@2024- MYSQL_DATABASE=nacos- MYSQL_USER=nacos- MYSQL_PASSWORD=nacos@2024- LANG=C.UTF-8healthcheck:test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]interval: 5stimeout: 10sretries: 10networks:- ncc-dockerncc-nacos:container_name: ncc-nacosrestart: unless-stoppedimage: nacos/nacos-server:v2.4.3privileged: truevolumes:- /data/ncc/nacos:/home/nacosports:- 8848:8848- 9848:9848environment:- PREFER_HOST_MODE=hostname- MODE=standalone- SPRING_DATASOURCE_PLATFORM=mysql- MYSQL_SERVICE_HOST=ncc-mysql- MYSQL_SERVICE_DB_NAME=nacos- MYSQL_SERVICE_PORT=3306- MYSQL_SERVICE_USER=nacos- MYSQL_SERVICE_PASSWORD=nacos@2024- MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true- NACOS_AUTH_ENABLE=true- NACOS_AUTH_IDENTITY_KEY=2222- NACOS_AUTH_IDENTITY_VALUE=2xxx- NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789depends_on:ncc-mysql:condition: service_healthynetworks:- ncc-dockerncc-redis:container_name: ncc-redisrestart: unless-stoppedimage: redis:7.2privileged: truevolumes:- /data/ncc/redis:/dataports:- 6379:6379environment:- TZ=Asia/Shanghainetworks:- ncc-dockercommand: ["redis-server", "--requirepass", "redis@2024","--appendonly","yes"]networks:ncc-docker:driver: bridgeexternal: false
13,启动服务
在包含docker-compose.yml文件的目录中打开终端,运行以下命令来启动服务:
sudo docker-compose up -d
14,发现nacos起不了,查看一下日志:
sudo docker logs ncc-nacos
15,发现启动的脚本找不到,查看一下挂载路径:
16,确实是没有,解决办法,先启动一个临时不挂载的容器,把文件拷贝到宿主主机
sudo docker-compose down
17,修改docker-compose.yml,把volumes注释掉:
sudo vi docker-compose.yml
18,再启动服务:
sudo docker-compose up -d
确实是启动成功了,然后把容器/home/nacos拷贝到本地/data/ncc/nacos/
sudo docker cp ncc-nacos:/home/nacos /data/ncc/nacos
19,关闭服务,并且去掉刚才volumes注释
sudo docker-compose down
sudo vi docker-compose.yml
20,重新启动服务
sudo docker-compose up -d
21,检查mysql服务是否正常
sudo docker exec -it ncc-mysql mysql -uroot -pmysql@2024
22,检查redis服务是否正常
sudo docker exec -it ncc-redis redis-cli
23,检查nacos是否正常:
sudo docker logs ncc-nacos
查看报错是因为数据库没有建好
https://raw.githubusercontent.com/alibaba/nacos/develop/distribution/conf/mysql-schema.sql
将mysql-schema.sql下载,并上传到服务器上面
然后执行SQL运行,并查看数据库表是否存在
sudo docker exec -i ncc-mysql mysql -uroot -pmysql@2024 nacos < ./mysql-schema.sql
sudo docker exec -it ncc-mysql mysql -uroot -pmysql@2024
再查看nacos日志,说明已经启动成功
进行访问:http://47.108.195.246:8848/nacos/
账号:nacos
密码:nacos
OK,完成!
相关文章:

Docker使用docker-compose一键部署nacos、Mysql、redis
下面是一个简单的例子,展示如何通过Docker Compose文件部署Nacos、MySQL和Redis。请确保您的机器上已经安装了Docker和Docker Compose。 1,准备好mysql、redis、nacos镜像 sudo docker pull mysql:8 && sudo docker pull redis:7.2 &&…...

HTTP常见的状态码有哪些,都代表什么意思
HTTP 协议定义了一系列的状态码,用于描述服务器对客户端请求的处理结果。这些状态码分为五个类别,每个类别都有特定的用途。 常见状态码 1开头 信息性状态码 这些状态码表示请求已被接收,继续处理。 100 Continue:客户端应继续…...

WebKit的Windows接口(适用2024年11月份版)
WebKit的Windows接口 使用cairo作为图形后端,libcurl作为网络后端。并且它只支持64位的Windows。 安装开发工具 安装带有“使用c进行桌面开发”工作负载的最新Visual Studio。 Activate Developer Mode.激活开发者模式。Build-webkit脚本创建一个指向生成的comp…...

Android 最新的AndroidStudio引入依赖失败如何解决?如:Failed to resolve:xxxx
错误信息: 在引入依赖时报错:Failed to resolve: xxx.xxxx:1.1.0 解决方案: 需要修改maven库的代理,否则就需要翻墙编译 新的AndroidStudio版本比较坑,修改代理的位置发生了变化: 最新变化:…...

ue5 蓝图学习(一)结构体的使用
在内容浏览器中右键 蓝图-选择结构体 下面这东西就是结构体,和C的结构体差不多 双击一下 可以添加变量,设置变量的类型和默认值。 可以在关卡蓝图中调用它。 点击打开关卡蓝图,添加变量 在变量的右侧,变量类型里搜索strcut&#…...

docker--工作目录迁移
前言 安装docker,默认的情况容器的默认存储路径会存储系统盘的 /var/lib/docker 目录下,系统盘一般默认 50G,容器输出的所有的日志,文件,镜像,都会存在这个地方,时间久了就会占满系统盘。 一、…...

Golang | Leetcode Golang题解之第556题下一个更大元素III
题目: 题解: func nextGreaterElement(n int) int {x, cnt : n, 1for ; x > 10 && x/10%10 > x%10; x / 10 {cnt}x / 10if x 0 {return -1}targetDigit : x % 10x2, cnt2 : n, 0for ; x2%10 < targetDigit; x2 / 10 {cnt2}x x2%10 -…...

2分钟在阿里云ECS控制台部署个人应用(图文示例)
作为一名程序员,我有大量的个人代码和应用托管在Github/Gitee这些代码仓库。当我想要部署这些代码到我的阿里云ECS服务器时,往往会很麻烦,主要问题有这些: 需要手动安装和配置git,过程非常繁琐。每次都需要登录到机器…...

2023.8 用于生物医学问答的选择性 UMLS 知识注入
Selective UMLS knowledge infusion for biomedical question answering Selective UMLS knowledge infusion for biomedical question answering | Scientific Reports 韩国首尔国立大学研究生院生物工程跨学科项目 问题 如何高效地将生物医学知识注入预训练语言模型&#x…...

chat2db调用ollama实现数据库的操作。
只试了mysql的调用。 其它的我也不用,本来想充钱算了。最后一看单位是美刀。就放弃了这分心。于是折腾了一下。 本地运行chat2db 及chat2db ui https://gitee.com/ooooinfo/Chat2DB clone 后运行起来 chat2db的java端,我现在搞不清这一个项目是有没有…...

Rust 生态系统的未来与学习方向
Rust 生态系统的未来与学习方向 Rust 作为一门系统编程语言,因其内存安全性、并发性能以及生态的不断壮大,已逐渐成为开发者和企业的首选语言之一。随着技术的进步,Rust 的生态系统持续发展,涉及多个领域,包括 Web 开…...

Vue的基础使用
一、为什么要学习Vue 1.前端必备技能 2.岗位多,绝大互联网公司都在使用Vue 3.提高开发效率 4.高薪必备技能(Vue2Vue3) 二、什么是Vue 概念:Vue (读音 /vjuː/,类似于 view) 是一套 构建用户界面 的 渐进式 框架…...

c++中,头文件包含iostream.h和`<iostream>`的差别
引言 在编写c代码时,有时候包含头文件iostream.h,有时候又包含<iostream>,初学者会对此感到很疑惑。 实际上,这两者是同一个头文件,只是包含方式不同,这是由于C的历史原因造成的,下面解释…...

界面控件DevExpress WPF中文教程:TreeList视图及创建分配视图
DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...

软件工程笔记二—— 软件生存期模型
目录 瀑布模型 瀑布模型的特点 阶段间具有顺序性和依赖性。 推迟实现的观点 质量保证的观点 瀑布模型的优点 瀑布模型的缺点 快速原型模型 快速原型模型的优点 快速原型模型的缺点 增量模型 增量模型的优点 增量构件开发 螺旋模型 完整的螺旋模型(顺…...

关于若依500验证码问题的求助
关于若依框架中验证码出现500错误的问题,这通常表示服务器内部错误。以下是一些可能的原因及解决方案: 一、配置文件问题 .env.production文件: 确保.env.production文件中的VUE_APP_BASE_API已经修改成服务器上的域名地址,而不…...

网络安全:守护数字世界的坚固防线
随着信息技术的飞速发展,网络已成为我们生活中不可或缺的一部分。它为我们提供了便捷的信息获取、交流娱乐的渠道,但同时也带来了前所未有的安全挑战。网络安全,这一看似遥远却又紧密相连的概念,正日益成为我们共同关注的焦点。 …...

Vue前端开发,组件及组件的使用
什么是组件 组件(Component)是Vue中最强大的功能之一,每个Vue 文件就是一个个独立的组件,组件也可以被其他组件调用,形成嵌套关系,大部分的应用都是由各类不同功能的小组件进行构建,形成一个功能强大的大组件树系统&a…...

from sklearn.feature_selection import VarianceThreshold.移除低方差的特征来减少数据集中的特征数量
VarianceThreshold 是 scikit-learn 库中的一个特征选择类,它通过移除低方差的特征来减少数据集中的特征数量。这种方法特别适用于删除那些在整个数据集中几乎不变的特征,因为这些特征对于模型的预测能力贡献不大。 参数: threshold&#x…...

git 同步上游仓库到远端仓库
首先知道什么是本地仓库,远端仓库,上游仓库 本地仓库:你从远端仓库克隆到本地 PC 上的仓库 远端仓库:从上游仓库 fork 过来的仓库,可以理解为自己的仓库 上游仓库:公司的仓库,所有权不在于你 当…...

SQL中的时间类型:深入解析与应用
在数据库管理系统中,时间数据的处理是至关重要的一环。无论是记录事务的创建时间、用户的登录时间,还是进行数据分析时的时间序列处理,时间类型都扮演着不可或缺的角色。SQL(Structured Query Language)作为与数据库交…...

如何用分布式数据库解决慢查询问题
当使用MySQL时,我们不可避免地会遇到许多与慢查询相关的问题。 为了解决这些慢SQL的问题,我们通常需要投入大量的精力去研究执行计划、考虑合适的索引策略、精心改写SQL语句,甚至可能需要调整程序逻辑。然而,针对特定SQL的优化往…...

vscode文件重定向输入输出(竞赛向)
VS Code 中文件重定向输入输出 在使用 VS Code 调试或运行 C 程序时,可以使用文件重定向来方便地从文件读取输入并将输出写入文件,而不是修改代码中的 ifstream 和 ofstream。 方法一:在终端中使用文件重定向 假设你的 C 程序文件为 main.…...

[Linux]IO多路转接(上)
1. IO 多路转接之select 1.1 select概述 select 是系统提供的一个多路转接接口,其核心工作在于等待。它能够让程序同时监视多个文件描述符上的事件是否就绪,只有当被监视的多个文件描述符中有一个或多个事件就绪时,select 才会成功返回&…...

基于Java的药店管理系统
药店管理系统 一:基本介绍开发环境管理员功能模块图系统功能部分数据库表设计 二:部分系统页面展示登录界面管理员管理进货信息界面管理员管理药品信息界面管理员管理员工界面管理员管理供应商信息界面管理员管理销售信息界面员工对信息进行管理员工对销…...

LaTeX之四:如何兼容中文(上手中文简历和中文论文)、在win/mac上安装新字体。
改成中文版 如果你已经修改了.cls文件和主文档,但编译后的PDF仍然显示英文版本,可能有以下几个原因: 编译器问题:确保你使用的是XeLaTeX或LuaLaTeX进行编译,因为它们对Unicode和中文支持更好。你可以在你的LaTeX编辑器…...

Unity自动LOD工具AutoLOD Mesh Decimator的使用
最近在研究大批量物体生成,由于我们没有专业美术,在模型减面工作上没有人手,所以准备用插件来实现LOD功能,所以找到了AutoLOD Mesh Decimator这个插件。 1,导入插件后,我们拿个实验的僵尸狗来做实验。 空…...

Flutter:使用Future发送网络请求
pubspec.yaml配置http的SDK cupertino_icons: ^1.0.8 http: ^1.2.2请求数据的格式转换 // Map 转 json final chat {name: 张三,message: 吃饭了吗, }; final chatJson json.encode(chat); print(chatJson);// json转Map final newChat json.decode(chatJson); print(newCha…...

4000字浅谈Java网络编程
什么是网络编程? 可以让设备中的程序与网络上的其他设备中的程序进行数据交互的技术(实现网络通信)。 基本的通信架构 基本的通信架构有两种形式:CS架构(Client客户端/Server服务端)、BS架构(…...

立体工业相机提升工业自动化中的立体深度感知
深度感知对仓库机器人应用至关重要,尤其是在自主导航、物品拾取与放置、库存管理等方面。 通过将深度感知与各种类型的3D数据(如体积数据、点云、纹理等)相结合,仓库机器人可以在错综复杂环境中实现自主导航,物品检测…...