(开发环境Ubuntu) Docker搭建 Nacos Sentinel Skywalking Redis ElacticSearch Mysql8 RabbitMQ Seata

10 篇文章 0 订阅
1 篇文章 0 订阅

(1)SSH 

        1、安装ssh

                apt install passwd openssl openssh-server openssh-client -y

        2、置采用密码登录

                vi /etc/ssh/sshd_config
                #添加下面两行
                PermitRootLogin yes
                PasswordAuthentication  yes

                #上面注意的一点是sshd_config 而不是ssh_config,一定不能混淆了。
                #添加后设置密码

                passwd root  

                后面登录的密码就是现在设置的密码

        3、重启sshd

                service ssh restart

                ssh root@ip 

(2)Docker

              # 安装过程碰到的问题不一样请自行解决

              apt install docker

(3)docker-compose

                官方链接 Install the Compose plugin | Docker Documentation

(4)Nacos

                源码地址: git clone https://github.com/nacos-group/nacos-docker.git

                官方链接:Nacos Docker 快速开始

                git clone https://github.com/nacos-group/nacos-docker.git

                cd nacos-docker

                # 安装nacos

                docker-compose -f example/standalone-derby.yaml up

                # 创建过程中如果碰到找不到nacos镜像

               (1)docker 配置阿里云镜像加速  百度可搜到

               (2)修改 nacos-docker/example/ .env 文件 在版本号前面加NACOS_VERSION=v2.1.2

(5)Sentinel

                官方链接 home | Sentinel

                # docker 安装命令  

                sudo docker run -d -p 8858:8858 -d bladex/sentinel-dashboard               

(6)Redis

              官网链接 Redis 

              docker run --name=some-redis -p 6379:6379 -d redis

(7)ElacticSearch

                镜像地址 Docker Hub

                官网链接 免费且开放的搜索:Elasticsearch、ELK 和 Kibana 的开发者 | Elastic

                # 安装命令

                 vim  /etc/sysctl.conf   追加 vm.max_map_count = 262164

                 sysctl -p  重新加载

                 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.0
                 docker run --name es01 --net host -e ES_JAVA_OPTS="-Xmx4g" -e         "discovery.type=single-node" -it docker.elastic.co/elasticsearch/elasticsearch:7.17.0

(8)Skywalking

               Server镜像地址 Docker Hub

                UI镜像地址  Docker Hub

                docker run --name oap --restart always -d -e SW_STORAGE=elasticsearch -p 12800:12800 -e SW_STORAGE_ES_CLUSTER_NODES=192.168.11.15:9200 apache/skywalking-oap-server:9.2.0

                docker run --name oap-ui --restart always -p 8080 -d -e SW_OAP_ADDRESS=http://192.168.11.15:12800 apache/skywalking-ui:9.2.0

(9)Mysql8

        docker run --restart=unless-stopped -d --name mysql -p 3306:3306 -v /root/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0.26

(10)RabbitMQ

         官网链接 Messaging that just works — RabbitMQ

         镜像链接 Docker Hub

        docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_VHOST=my_vhost  -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --hostname myRabbit --name rabbitmq rabbitmq

(11)Seata

                镜像链接 Docker Hub

                官方链接: Seata 官网

                docker run --name seata-server -p 8091:8091 seataio/seata-server:latest

(12)  RocketMQ

            官网链接 RocketMQ · 官方网站 | RocketMQ

             安装脚本  vi instalRocketMQ.sh 添加内容

docker pull rocketmqinc/rocketmq
namesrvLogs="/root/rocketmq/data/namesrv/logs"
namesrvStore="/root/rocketmq/data/namesrv/store"
borkerLogs="/root/rocketmq/data/broker/logs"
borkerStore="/root/rocketmq/data/broker/store"
borkerConf="/root/rocketmq/conf"
mkdir -p  ${namesrvLogs} ${namesrvStore}
docker stop rmqnamesrv
docker rm rmqnamesrv
dockerId=`docker run -d --privileged --restart=always --name rmqnamesrv -p 9876:9876 -v ${namesrvLogs}:/root/logs -v namesrvStore:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv autoCreateTopicEnable=true`
echo ${dockerId}
mkdir -p ${borkerLogs} ${borkerStore} ${borkerConf}
rm -rf ${borkerConf}"/broker.conf"
echo "
# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = DefaultCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 设置broker节点所在服务器的ip地址
brokerIP1 = 192.168.11.15
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95" >> ${borkerConf}"/broker.conf"

docker stop rmqbroker
docker rm rmqbroker
docker run -d  \
--restart=always \
--name rmqbroker \
--link rmqnamesrv:namesrv \
-p 10911:10911 \
-p 10909:10909 \
-v  ${borkerLogs}:/root/logs \
-v  ${borkerStore}:/root/store \
-v  ${borkerConf}/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
rocketmqinc/rocketmq \
sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

docker stop rmqadmin
docker rm rmqadmin
docker pull pangliang/rocketmq-console-ng
docker run -d \
--restart=always \
--name rmqadmin \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.11.15:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 9999:8080 \
pangliang/rocketmq-console-ng

  

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化解决方案,Docker Compose可以简化多个容器的管理和部署流程。Nacos是一个用于服务发现、配置管理和动态DNS服务的开源平台。Node.js是一个基于JavaScript的开源、跨平台的运行时环境,用于构建可扩展的网络应用程序。MongoDB是一个高性能、文档型NoSQL数据库,适用于处理大量的结构化和非结构化数据。MySQL是一个开源的关系型数据库管理系统,用于存储和管理结构化数据。Redis是一个基于内存的高性能键值存储系统,用于缓存和数据持久化。Seata是一个开源的分布式事务解决方案,用于保证分布式系统中的数据一致性。 通过Docker Compose,我们可以轻松地将这些不同的组件和服务以容器化的方式部署在一台或多台服务器上。我们可以使用Docker Compose的配置文件定义每个服务的镜像、端口映射、环境变量等设置。在这个场景中,我们可以将Nacos、Node.js、MongoDB、MySQLRedisSeata分别作为独立的服务进行定义。 使用Docker Compose可以简化部署过程,只需运行一个命令即可启动整个应用程序的容器群组。Docker会自动拉取和部署所需的镜像,启动容器,并通过网络连接各个服务。Nacos可以作为服务发现和配置中心,用于管理和注册各个服务的地址和配置信息。Node.js可以作为应用程序的后端逻辑进行开发,通过Nacos来发现和调用各个后端服务。MongoDB作为主要的数据存储,MySQLRedis可以作为辅助数据存储和缓存。Seata可以用于管理和控制分布式事务,确保数据一致性。 总之,使用Docker Compose可以方便地将Nacos、Node.js、MongoDB、MySQLRedisSeata等组件集成在一起,并通过容器化的方式进行部署。这样做可以极大地简化应用程序的开发和部署过程,并提供高度可扩展的架构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值