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,如果因为网络问题,没有下载到,可以直接下载镜像包

  1. mysql:8镜像包  
  2. redis:7.2镜像包
  3. 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

  1. 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-mysql
    restart: unless-stopped
    build:
      context: .
      dockerfile: ./Dockerfile
    image: mysql:8
    privileged: true
    volumes:
      - /data/ncc/mysql:/var/lib/mysql
    ports:
      - 3306:3306
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=mysql@2024
      - MYSQL_DATABASE=nacos
      - MYSQL_USER=nacos
      - MYSQL_PASSWORD=nacos@2024
      - LANG=C.UTF-8
    healthcheck:
      test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
      interval: 5s
      timeout: 10s
      retries: 10
    networks:
      - ncc-docker


  ncc-nacos:
    container_name: ncc-nacos
    restart: unless-stopped
    image: nacos/nacos-server:v2.4.3
    privileged: true
    volumes:
      - /data/ncc/nacos:/home/nacos
    ports:
      - 8848:8848
      - 9848:9848
    environment:
      - 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=SecretKey012345678901234567890123456789012345678901234567890123456789
    depends_on:
      ncc-mysql:
        condition: service_healthy
    networks:
      - ncc-docker

  ncc-redis:
    container_name: ncc-redis
    restart: unless-stopped
    image: redis:7.2
    privileged: true
    volumes:
      - /data/ncc/redis:/data
    ports:
      - 6379:6379
    environment:
      - TZ=Asia/Shanghai
    networks:
      - ncc-docker
    command: ["redis-server", "--requirepass", "redis@2024","--appendonly","yes"]

networks:
  ncc-docker:
    driver: bridge
    external: 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,完成! 

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

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

相关文章

04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索

文章目录 深入 Oracle 并发世界&#xff1a;MVCC、锁、闩锁、事务隔离与并发性能优化的探索一、多版本并发控制&#xff08;MVCC&#xff09;1.1 理论解析1.2 实践应用 二、锁与闩锁机制2.1 理论解析2.2 实践应用 三、事务隔离级别3.1 理论解析3.2 实践应用 四、死锁预防与解决…

PyQt5超详细教程终篇

PyQt5超详细教程 前言 接&#xff1a; [【Python篇】PyQt5 超详细教程——由入门到精通&#xff08;序篇&#xff09;](【Python篇】PyQt5 超详细教程——由入门到精通&#xff08;序篇&#xff09;-CSDN博客) 建议把代码复制到pycahrm等IDE上面看实际效果&#xff0c;方便理…

计算机的错误计算(一百五十一)

摘要 探讨 MATLAB 中反正弦 asin 与反余弦 acos 函数的计算精度问题。 例1. 已知 计算 及 直接贴图吧&#xff1a; 另外&#xff0c;16位的正确值分别为 0.1570785896071048e1、0.1043072384837152e-4、-0.1570785896071048e1 与 0.3141582222865945e1&#xff08;I…

FPGA学习笔记#5 Vitis HLS For循环的优化(1)

本笔记使用的Vitis HLS版本为2022.2&#xff0c;在windows11下运行&#xff0c;仿真part为xcku15p_CIV-ffva1156-2LV-e&#xff0c;主要根据教程&#xff1a;跟Xilinx SAE 学HLS系列视频讲座-高亚军进行学习 从这一篇开始正式进入HLS对C代码的优化笔记 学习笔记&#xff1a;《…

Spring Plugin与策略模式:打造动态可扩展的应用

目录 一、策略模式 二、Spring Plugin 2.1 Spring Plugin 实现策略模式开发 2.2 策略模式优缺点 三、Spring Plugin 原理 一、策略模式 策略模式是一种设计模式&#xff0c;它允许程序在运行中动态的选择不同的行为方式进行动态执行。策略模式的核心思想是将行为封装在一个个…

Works With线上开发者大会将提供物联网行业深入的专业知识和技能

Silicon Labs2024年Works With线上开发者大会定于11月20日至21日举行&#xff0c;将汇集全球各地的物联网开发人员、设备制造商、无线技术专家、工程师和商业领袖&#xff0c;观众可免费注册参加。同时&#xff0c;为了方便中文观众&#xff0c;所有在线视频均配有中文字幕。 芯…

一文读懂 Web 安全

Web 安全是互联网中不可或缺的一个领域&#xff0c;这个领域中诞生了大量的黑帽子与白帽子&#xff0c;他们都是安全领域的王者&#xff0c;在平时里&#xff0c;他们利用各种巧妙的技术互相博弈&#xff0c;时不时就会掀起一场 Web 安全浪潮&#xff0c;真可谓神仙打架&#x…

iOS问题记录 - 503 Service Temporarily Unavailable

文章目录 前言开发环境问题描述问题分析解决方案最后 前言 最近有个项目经历了大改动&#xff0c;本地测试没什么问题&#xff0c;于是准备通过打包机打包用于内部测试的包&#xff0c;然后问题就来了。 开发环境 Xcode: 16.1Fastlane: 2.219.0 问题描述 问题出在登录苹果…

数据网格能替代数据仓库吗?

一、数据网格是什么&#xff1f; 数据网格&#xff1a;是一种新兴的数据管理架构和理念&#xff0c;主要用于解决大规模、复杂数据环境下的数据管理和利用问题。 核心概念&#xff1a; 1、数据即产品&#xff1a;将数据看作一种产品&#xff0c;每个数据域都要对其生产的数据负…

Dolphinscheduler配置dataX离线采集任务写入hive实践(二)

这里写目录标题 一、 写入hive 配置1.1 权限报错信息 &#xff1a;1.2 hive 中文件格式1.3 注意区别以下建表语句A、构建ORC 格式分区表B. 构建默认文件格式分区表C.构建非分区表 二、dataX 配置hive 分区表导入 配置2.1 检查hive 表分区是否存在 一、 写入hive 配置 dataX 写…

机器学习——损失函数、代价函数、KL散度

&#x1f33a;历史文章列表&#x1f33a; 机器学习——损失函数、代价函数、KL散度机器学习——特征工程、正则化、强化学习机器学习——常见算法汇总机器学习——感知机、MLP、SVM机器学习——KNN机器学习——贝叶斯机器学习——决策树机器学习——随机森林、Bagging、Boostin…

Word大珩助手:超大数字怎么读?35位数字?69位数字?

俄罗斯日前对谷歌开出了20000000000000000000000000000000000&#xff08;35位数字&#xff09;美元的罚款 这一数字远超全球GDP总和&#xff0c;消息一出很快就登上热搜。 面对这样一个庞大的数字&#xff0c;人们不禁好奇&#xff0c;这样的数字该如何读出来&#xff1f; …

ODOO学习笔记(2):核心功能是哪些?

Odoo的核心功能主要包括以下几个方面&#xff1a; 客户关系管理&#xff08;CRM&#xff09;&#xff1a;Odoo的CRM工具管理公司与客户和潜在客户的所有关系和互动&#xff0c;提供一个集中式系统来管理销售活动&#xff0c;从潜在客户培育到达成交易。CRM模块包括报告和分析功…

JUC学习

JUC 1、什么是JUC&#xff1f; ​ JUC是java.util.concurrent包的简称&#xff0c;在Java5.0添加&#xff0c;目的就是为了更好的支持高并发任务。在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类,用于定义类似于线程的自定义…

Kafka面试题解答(二)

1.怎么尽可能保证 Kafka 的可靠性 kafka是可能会出现数据丢失问题的&#xff0c;Leader维护了一个动态的in-sync replica set&#xff08;ISR&#xff09;&#xff0c;意为和 Leader保持同步的FollowerLeader集合(leader&#xff1a;0&#xff0c;isr:0,1,2)。如果Follower长时…

如何在算家云搭建Aatrox-Bert-VITS2(音频生成)

一、模型介绍 ‌ Aatrox - Bert -VITS2 模型是一种基于深度学习的语音合成系统&#xff0c;结合了 BERT 的预训练能力和 VITS2 的微调技术&#xff0c;旨在实现高质量的个性化语音合成。 二、模型搭建流程 1. 创建容器实例 进入算家云的“应用社区”&#xff0c;点击搜索找到…

PDF编辑工具Adobe Acrobat DC 2023安装教程(附安装包)

Adobe Acrobat DC 2023 是 Adobe 公司推出的一款功能强大的 PDF 文档处理软件。它不仅支持创建、编辑和签署 PDF 文件&#xff0c;还提供了丰富的工具来管理和优化这些文件。以下是 Acrobat DC 2023 的一些主要特点&#xff1a; 1.PDF 创建与编辑&#xff1a;用户可以直接从多…

【李白打酒加强版——DP】

题目 思路 三个注意点&#xff1a;k是偶数的状态才能是遇到店之后的状态、f[n-1][m][k]状态非法、不要越界 代码 #include <bits/stdc.h> using namespace std; const int N 110, mod 1e97; int f[N][N][N]; int main() {int n, m;cin >> n >> m;f[0][0]…

HarmonyOS ArkTS 下拉列表组件

Entry Component struct Index {defaultValue: string 下拉列表;// 定义选项数组&#xff0c;包含 value 和可选的 labeloptions: Array<SelectOption> [{ value: aaa },{ value: bbb },{ value: ccc },{ value: ddd },{ value: eee },{ value: fff },{ value: ggg },{…

云上盛宴-腾讯云双11活动玩法攻略

大家好呀&#xff01;我是reload。今天来给大家分享一下腾讯云双十一活动玩法攻略。一年一度的双十一购物盛宴又要来了&#xff0c;为了应对各种秒杀抢购而导致的用户访问量激增&#xff0c;平台可以通过云计算技术的弹性伸缩能力&#xff0c;迅速增加服务器资源&#xff0c;确…