基于Docker部署常用Paas组件

一、docker部署paas组件
安装之前需要把本地的docker环境的日志都集中到固定的目录下,避免root目录打满,我这里挂载到了/data/docker目录下

二、paas组件搭建
1、MySQL
step1:创建目录

mkdir -p /data/mysql-data
mkdir -p /data/mysql

step2:编辑mysql配置文件

cd /data/mysql
vim my.cnf
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
lower_case_table_names = 1
character_set_server = utf8
collation-server = utf8_general_ci
max_connections=3000
interactive_timeout=1800
wait_timeout=1800
default_authentication_plugin=mysql_native_password[client]
default-character-set=utf8
# Custom config should go here
!includedir /etc/mysql/conf.d/

step3:mysql数据持久化,启动容器

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=Admin@coc1 -p 3306:3306 -v /data/mysql-data:/var/lib/mysql -v /data/mysql/my.cnf:/etc/mysql/my.cnf  mysql:8.0

2、redis
step1:
编辑redis配置文件:

mkdir -p /data/redis/
cd /data/redis/
vim redis.conf
# Redis配置文件# Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
daemonize no# 指定Redis监听端口,默认端口为6379
port 6379# 绑定的主机地址,不要绑定容器的本地127.0.0.1地址,因为这样就无法在容器外部访问
bind 0.0.0.0#需要则打开
requirepass Admin@coc1# 持久化
appendonly yes

step2:创建目录

mkdir -p /data/redis
mkdir -p /data/redis/data

step3:启动redis

docker run -p 6389:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf

注:redis默认对外映射端口修改为6389

3、zookeeper
先启动zookeeper

docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper

4、kafka
注意:需要先启动zookpeer组件
再启动kafka(启动kafak时记得把localhost换成本机ip地址,否则别的机器连接不上此kafka)

docker run -d --name kafka --network app-tier -p 9092:9092 -v /data/kafka/kafka_config/server.properties:/opt/kafka/config/server.properties \-e ALLOW_PLAINTEXT_LISTENER=yes \-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.142.149.28:9092 \-e KAFKA_ZOOKEEPER_CONNECT=zookeeper-server:2181 \kafka:v1204

5、mongo
step1:
创建目录

mkdir -p /data/mongo/data
mkdir -p /data/mongo/config
mkdir -p /data/mongo/log

step2:配置文件mongod.conf

cd /data/mongo/config
vim mongod.conf
# 数据库存储路径
dbpath=/data/mongo/data# 日志文件路径
logpath=/data/mongo/log/mongod.log# 监听的端口
port=27017# 允许所有的 IP 地址连接
bind_ip=0.0.0.0# 启用日志记录
journal=true# 启用身份验证
auth=true

step3:启动mongo容器

docker run --name mongo \-p 27017:27017 \-v /data/mongo/config/mongod.conf:/etc/mongod.conf \-v /data/mongo/data:/var/lib/mongodb \-v /data/mongo/log:/var/log/mongodb \-d mongo:latest --auth

step4:
进入容器,创建管理员用户和密码

docker exec -it mongo mongosh admin
#创建用户设置密码
db.createUser({ user:'admin',pwd:'xxxxx',roles:[{ role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]}
)
#验证成功失败
db.auth('admin', 'xxxxxxx')

创建root用户

#创建root用户方法(可选)
db.createUser({user:"root",pwd:"xxxxxx",roles:[{role:"root",db:"admin"}]}
);
# 退出容器
quit()

step5:
重启mongo

docker restart mongo

如果需要修改mongo密码

db.changeUserPassword("admin", "xxxxxxxxxxxxx")
#验证成功失败
db.auth('admin', 'xxxxxxxxxxxxxx')

7、etcd

docker run -itd --name etcd \-e ETCD_AUTO_COMPACTION_MODE=revision \-e ETCD_AUTO_COMPACTION_RETENTION=1000 \-e ETCD_QUOTA_BACKEND_BYTES=4294967296 \-e ETCD_SNAPSHOT_COUNT=50000 \-v /data/etcd:/etcd \-p 2379:2379 \quay.io/coreos/etcd:v3.5.5 \etcd \--advertise-client-urls=http://127.0.0.1:2379 \--listen-client-urls http://0.0.0.0:2379 \--data-dir /etcd

etcd创建用户
进入etcd容器:

docker exec -it etcd /bin/bash

etcd加密,执行如下:

etcdctl --endpoints=http://127.0.0.1:2379 user add root
// 这里会提示输入
etcdctl --endpoints=http://127.0.0.1:2379 user grant-role root root
etcdctl --endpoints=http://127.0.0.1:2379 auth enable  

8、minio

mkdir -p /data/minio
docker run -itd --name myminio -e "MINIO_ACCESS_KEY=tKv5Hqql)WhgyZ+2yc)t" -e "MINIO_SECRET_KEY=FFQCPedDYmkUAw==" -v /data/minio:/minio_data -p 9005:9000 -p 9001:9001 minio/minio:latest minio server /minio_data --console-address ":9001" --address ":9000"

9、milvus

mkdir -p /data/milvus
docker run -itd --name milvus-standalone -e "ETCD_ENDPOINTS=10.142.149.28:2379" -e "MINIO_ADDRESS=10.142.149.28:9005" -v /data/milvus:/var/lib/milvus -p 19530:19530 -p 9095:9091 milvusdb/milvus:v2.2.13 milvus run standalone

注意:部署milvus时,需要先部署etcd和minio,修改对应ADDRESS为host信息
10、clickhouse

mkdir -p /data/clickhouse/log
mkdir -p /data/clickhouse/clickhouse-server
docker run -d --name clickhouse-server -p 9090:9090 -p 8123:8123 clickhouse:v1204

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

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

相关文章

编程中的智慧之设计模式二

设计模式:深度解析与实战应用 在上一篇文章中,我们探讨了创建型模式、结构型模式和行为模式中的一些常用模式及其Java实现。本篇将继续深入探讨设计模式,重点介绍更多的行为模式以及架构模式在实际开发中的应用。 行为模式 责任链模式&…

MQTT服务端EMQX开源版安装和客户端MQTTX介绍

一、EMQX是什么 EMQX 是一款开源的大规模分布式 MQTT 消息服务器,功能丰富,专为物联网和实时通信应用而设计。EMQX 5.0 单集群支持 MQTT 并发连接数高达 1 亿条,单服务器的传输与处理吞吐量可达每秒百万级 MQTT 消息,同时保证毫秒…

vscode 中python 支持自动跳转

随笔记录 目录 1. 背景介绍 2. 解决方案 1. 背景介绍 vscode 远程ssh 打开python 脚本无法自动跳转 2. 解决方案 安装python 插件即可。 至此,已完成vscode 上py 文件支持自动跳转功能

1.6.丢弃法

丢弃法 动机:一个好的模型需要对输入数据的扰动足够健壮,丢弃法就是在层之间加入噪音。也可以在数据中使用噪音,等价与Tikhonov正则 无偏差的加入噪音 ​ 对于数据 x x x,加入噪音后的 x ′ x x′的期望值是不变的,…

Unity如何查找两个transform最近的公共parent

查找两个子对象最近的父对象 一、问题背景二、解决方案思路核心算法代码 三、总结 一、问题背景 最近看到个关于Unity的问题:在Hierarchy面板中的游戏对象,给定两个子物体transform对象,如何查找这两个transform最近的公共父级parent。感觉挺…

【前端】ikun-qrcode:极简的二维码生成组件,使用view而非canvas避免层级问题

文章目录 背景ikun-qrcode界面效果如何发布一款自己的插件到uniapp市场。(5分钟搞定) 背景 之前在uniapp上100行搞定二维码生成, 现在封装为vue组件分享出来: 下载地址: https://ext.dcloud.net.cn/plugin?id19351 …

C语言 | Leetcode C语言题解之第239题滑动窗口最大值

题目&#xff1a; 题解&#xff1a; int* maxSlidingWindow(int* nums, int numsSize, int k, int* returnSize) {int prefixMax[numsSize], suffixMax[numsSize];for (int i 0; i < numsSize; i) {if (i % k 0) {prefixMax[i] nums[i];} else {prefixMax[i] fmax(pref…

PHP + Swoole 与 Go 技术选型对比调研报告

1. 引言 在高并发场景下&#xff0c;选择合适的技术栈至关重要。PHP Swoole 和 Go 都是当前流行的技术选型&#xff0c;但它们在性能、开发效率、易用性等方面各有优劣。本报告将从多个维度对比这两种技术&#xff0c;帮助开发者做出更合适的选择。 2. 技术概述 PHP Swool…

linux 修改hostname

在 Linux 系统中修改主机名&#xff08;hostname&#xff09;要遵循以下几步全面的操作流程&#xff1a; 1. 临时修改主机名 你可以立即但临时地更改主机名&#xff0c;这个更改在重启后不会保留。执行以下命令&#xff1a; hostname 新主机名例如&#xff1a; hostname my…

编程世界的对决:JavaScript vs Java

在编程领域&#xff0c;Java和JavaScript这两门语言各有千秋。它们不仅在语法上有着明显的区别&#xff0c;在编程理念、表现力、类型转换以及代码的易读性和复杂性方面也有着巨大的差异。本文将深入探讨JavaScript相较于Java的优势&#xff0c;以及两者在代码风格和开发体验上…

抖音视频素材去哪里找啊?视频素材网站库分享

在这个视觉盛宴的抖音平台上&#xff0c;高质量和有趣的视频素材常常是吸引观众的重要钥匙。如果你也正在寻找那些能让你的视频作品更加出色的资源&#xff0c;那么恭喜你&#xff0c;今天我将为你介绍10个超实用的视频素材网站&#xff0c;让你的抖音视频创作充满创意和效率。…

【ROS2】高级:解锁 Fast DDS 中间件的潜力 [社区贡献]

目标&#xff1a;本教程将展示如何在 ROS 2 中使用 Fast DDS 的扩展配置功能。 教程级别&#xff1a;高级 时间&#xff1a;20 分钟 目录 背景 先决条件在同一个节点中混合同步和异步发布 创建具有发布者的节点创建包含配置文件的 XML 文件执行发布者节点创建一个包含订阅者的节…

单例模式->饿汉模式->懒汉模式->阻塞队列->模拟实现阻塞队列->生产者消费者模型

单例模式->是一种固定套路,类似于"棋谱",按照套路来,可以避免一些问题 单例模式的特点->能够保证在某个类中只存在一个实例,不会创建多个实例 饿汉模式(线程安全):最基础的单例模式,类加载的同时就会创建实例,是线程安全的 public class Singleton {// 在类加…

Flutter应用开发:掌握StatefulWidget的实用技巧

前言 随着移动应用的日益复杂&#xff0c;状态管理成为了 Flutter 应用开发中的一项重要挑战。 状态&#xff0c;即应用中的可变数据&#xff0c;它驱动着用户界面的渲染和交互。 在 Flutter 这样的声明式 UI 框架中&#xff0c;如何高效、可维护地管理状态&#xff0c;对于…

cuda中的cooperative_groups

背景 最近看到一个代码cooperative_groups.this_grid().sync()很好奇&#xff0c;这里好好梳理一下 分析 以前block内部的同步是用syncthreads(), block之间没有提供同步的接口&#xff0c;这样是合理的&#xff0c;假如有block间同步API的话&#xff0c;如果block太多&…

vue程序中如何设置调用springboot服务的url

在Vue程序中调用Spring Boot服务的URL&#xff0c;可以通过以下步骤实现&#xff1a; 安装Axios: Axios是一个基于Promise的HTTP库&#xff0c;可以用于浏览器和Node.js。可以使用npm或yarn安装Axios。 npm install axios # or yarn add axios创建Axios实例: 为了方便管理和复用…

Python--循环控制语句:continue 和 break

在Python编程中&#xff0c;continue 和 break 是两个非常有用的循环控制语句&#xff0c;它们允许我们以不同的方式控制循环的执行流程。 continue 语句 continue 用于中断当前循环的剩余部分&#xff0c;直接进入下一次循环的开始。它的作用是跳过当前循环中剩余的代码&…

GuLi商城-商品服务-API-属性分组-分组修改级联选择器回显

前端代码:略 后端回显接口: 递归方法: @Override publi

算法模板之单调栈【java】

算法模板之单调栈【java】 单调栈&#xff1a;在一维数组中找第一个满足某种条件的数找到数组中每个数【左侧】第一个【大于】它的数找到数组中每个数【左侧】第一个【大于或等于】它的数找到数组中每个数【左侧】第一个【小于】它的数找到数组中每个数【左侧】第一个【小于或等…

C# 反射详解

本文主要是对反射进行详细介绍&#xff0c;具体可以参照微软官方文档 首先我们来定义一个类型 public class Calculator {private int _number1 10;private int _number2 20;public int Number1 { get > _number1; set > _number1 value; }public int Number2 { get…