docker 部署 elasticsearch、kibana

1. 拉取镜像

docker pull elasticsearch:7.17.1
docker pull kibana:7.17.1

2. 创建 es 容器之前需要先做以下工作

mkdir -p ~/docker/Elasticsearch/config/
mkdir ~/docker/Elasticsearch/data/
mkdir ~/docker/Elasticsearch/plugins/
cd ~/docker/Elasticsearch/config/
echo http.host: 0.0.0.0 > elasticsearch.yml

3. 创建elasticsearch容器

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
 -e "discovery.type=single-node" \
 -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
 -v /Users/kenja/docker/Elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
 -v /Users/kenja/docker/Elasticsearch/data:/usr/share/elasticsearch/data \
 -v /Users/kenja/docker/Elasticsearch/plugins:/usr/share/elasticsearch/plugins \
 -d elasticsearch:7.17.1

4. 创建kibana容器

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://host.docker.internal:9200 -p 5601:5601 \
-d kibana:7.17.1

Docker 部署 RabbitMQ

1. 拉取镜像

docker pull rabbitmq:management

2. 创建容器

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management

3. 使用默认账号密码登录即可(guest/guest)即可

Docker 部署 Sentinel-Dashboard

1. 拉取镜像

docker pull bladex/sentinel-dashboard

2. 创建容器

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

3. 访问 http://localhost:8858/ 即可

4. 用docker部署的sentinel需要在yml配置client-ip:本地ip才行

spring:
  application:
    name: cloudalibaba-sentinel-service
  cloud:
    nacos:
      discovery:
        # Nacos服务注册中心地址
        server-addr: localhost:8848
    sentinel:
      transport:
        # sentinel dashboard 地址
        dashboard: localhost:8858
        # 默认为8719,如果被占用会自动+1,直到找到为止
        port: 8719
        # 本地机器ip
        client-ip: 本机ip

docker 部署 nacos 报错:No DataSource set

可能性有几种:

一:没有初始化 nacos 数据库,安装即可

https://raw.githubusercontent.com/alibaba/nacos/2.0.0/distribution/conf/nacos-mysql.sql

二:可能安装的版本不适配,比如我是 m1 芯片的,需要找特别的版本

docker run -d -p 8848:8848 -p 9848:9848 -p 9555:9555 --name nacos-server \
-e PREFER_HOST_MODE=hostname \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.123.163 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai" \
--restart on-failure \
zill057/nacos-server-apple-silicon:2.0.3

注意: 这个版本启动要用这个地址 http://127.0.0.1:8848/nacos/ 登陆名/密码:nacos/nacos

macOS 环境下 Docker 配置 RocketMQ(ARM 架构可用)

一、创建相关文件夹

 mkdir -p ~/docker/rocketmq/data
 cd ~/docker/rocketmq/data
 mkdir logs
 mkdir store
 mkdir -p broker/conf
 mkdir -p broker/logs
 mkdir -p broker/store

二、创建 docker-compose.yml

vim ~/docker/rocketmq/data/broker/conf/broker.conf

version: "3.5"
services:
  rmqnamesrv:
    image: foxiswho/rocketmq:server
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - ./data/logs:/opt/logs
      - ./data/store:/opt/store
    networks:
      rmq:
        aliases:
          - rmqnamesrv
  rmqbroker:
    image: foxiswho/rocketmq:broker
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
    volumes:
      - ./data/broker/logs:/opt/logs
      - ./data/broker/store:/opt/store
      - ./data/broker/conf/broker.conf:/etc/rocketmq/broker.conf
    environment:
      NAMESRV_ADDR: "rmqnamesrv:9876"
      JAVA_OPTS: " -Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    command: mqbroker -c /etc/rocketmq/broker.conf
    depends_on:
      - rmqnamesrv
    networks:
      rmq:
        aliases:
          - rmqbroker
  rmqconsole:
    image: apacherocketmq/rocketmq-dashboard
    container_name: rmq-dashboard
    ports:
      - 8180:8080
    environment:
      JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876"
    depends_on:
      - rmqnamesrv
    networks:
      rmq:
        aliases:
          - rmq-dashboard
networks:
  rmq:
    name: rmq
    driver: bridge

三、创建 broker.conf

vim ~/docker/rocketmq/data/broker/conf/broker.conf