Docker-Compose 搭建各种中间件

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Docker-Compose 搭建各种中间件

安装Docker和Docker-Compose见安装Docker&Docker-Compose

Nexus

java jar包私服仓库

  1. 编写docker-compose.yaml

vim docker-compose.yaml

version: '3'
services:
  nexus:
      restart: always
      image: sonatype/nexus3:3.17.0
      volumes:
        - /data/nexus-data:/nexus-data
      ports:
        - "8081:8081"
  1. 启动
docker-compose up -d
  1. 登录控制台初始化
    localhost:8081
    设置新密码
  2. 配置仓库
  1. 新建阿里云代理仓库:Create Repository -> maven2(proxy)
    Name: aliyun-proxy
    Remote storage: https://maven.aliyun.com/repository/public
  2. 配置maven-public group
    将aliyun-proxy仓库添加的组中,位置排在maven-release后
  1. 创建任务
    创建清理快照任务
    System -> Tasks -> Create Task
    选择Maven-Delete SNAPSHOT
    配置任务名称,清理的仓库:Maven-SNAPSHOT, 清理周期:每周

Harbor

镜像仓库

  1. 获取安装包
    release: https://github.com/goharbor/harbor/releases
wget https://download.fastgit.org/goharbor/harbor/releases/download/v2.2.2/harbor-online-installer-v2.2.2.tgz
  1. 解压
    tar -xf harbor-online-installer-v2.2.2.tgz
  2. 编辑配置文件
#将原配置文件拷贝一份
cp harbor.yaml.tmp harbor.yaml
#编辑
vim harbor.yaml


# 配置域名
hostname: abc.com
# 修改端口号
http:
  port: 8082
harbor_admin_password: Harbor12345
database:
  password: root123
  max_idle_conns: 50
  max_open_conns: 1000
# 修改数据卷
data_volume: /data/harbor/data
trivy:
  ignore_unfixed: false
  skip_update: false
  insecure: false
jobservice:
    max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    #修改日志路径
    location: /data/harbor/log
_version: 2.2.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - trivy
  1. 安装
sudo ./install.sh 
  1. 登录控制台
    localhost:8082
    默认账号密码:admin Harbor12345
  2. 新建账号用于发布
  3. 配置垃圾清理定时任务,频率:每周

Elastic

  1. 编写docker-compose文件
version: '3'
services:
  es:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.13.2
    container_name: es
    environment:
      - discovery.type=single-node
      - network.publish_host=172.31.240.178
      - bootstrap.memory_lock=true
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - ./data:/usr/share/elasticsearch/data
      - ./plugins:/usr/share/elasticsearch/plugins
    ports:
      - 9200:9200
      - 9300:9300
volumes:
  data:
    driver: local

新建data与plugins目录

mkdir data plugins
  1. 赋权
chmod 777 data plugins
  1. 启动
docker-compose up -d

Kibana

  1. 编写配置文件
    vim kibana.yml
server.host: "0"
elasticsearch.hosts: [ "http://172.31.240.178:9200" ]
i18n.locale: "zh-CN"
  1. 编写docker-compose文件
version: '3'
services:
  kibana:
    image: docker.elastic.co/kibana/kibana:7.13.2
    container_name: kibana
    volumes:
      - ./kibana.yaml:/usr/share/kibana/config/kibana.yml
    ports:
      - 5601:5601
  1. 启动
docker-compose up -d

MySQL

  1. 编写docker-compose
version: '3.1'
services:
    db:
        image: mysql:5.7.34
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: mysql&2021
        command:
          --default-authentication-plugin=mysql_native_password
          --character-set-server=utf8mb4
          --collation-server=utf8mb4_general_ci
          --explicit_defaults_for_timestamp=true
          --lower_case_table_names=1
        ports:
          - 3306:3306
        volumes:
          - ./data:/var/lib/mysql
  1. 启动
docker-compose up -d

Nacos

  1. 编写环境配置
    mkdir init.d && cd init.d
    vim custom.properties
management.endpoints.web.exposure.include=*
  1. 初始化数据库
    https://github.com/alibaba/nacos/blob/1.4.2/distribution/conf/nacos-mysql.sql
  2. 编写docker-compose文件
version: "3.1"
services:
  nacos:
    image: nacos/nacos-server:1.4.2
    container_name: nacos-standalone-mysql
    environment:
      MODE: standalone
      SPRING_DATASOURCE_PLATFORM: mysql
      MYSQL_SERVICE_HOST: 172.31.240.179
      MYSQL_SERVICE_DB_NAME: nacos
      MYSQL_SERVICE_PORT: 3306
      MYSQL_SERVICE_USER: root
      MYSQL_SERVICE_PASSWORD: mysql&2021
      MYSQL_SERVICE_DB_PARAM: characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
    volumes:
      - ./standalone-logs/:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - "8848:8848"
    restart: on-failure
  1. 启动
docker-compose up -d

Redis

  1. 编写docker-compose文件
version: '3.1'
services:
    redis:
        image: redis
        environment:
          TZ: Asia/Shanghai
        ports:
            - 6379:6379
        command: redis-server --requirepass redis@2021
        volumes:
            - ./redis-data:/var/lib/redis
  1. 启动
docker-compose up -d
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
消息中间件 运维 Java
【消息中间件】在Docker下安装的RocketMQ,使用mqadmin命令报错解决[10015:signature-failed]
前在Docker下安装了RocketMQ以及他的管理平台,但是管理平台在运维的时候只能满足我们部分的需求,所以为了在集群运维时能够的得心应手,研究了下mqadmin的使用,没想到一开始就遇到了报错,在这里和大家分享下解决的方法。
|
1月前
|
消息中间件 编解码 Docker
Docker部署RabbitMQ消息中间件
【7月更文挑战第4天】Docker部署RabbitMQ消息中间件
166 3
|
12月前
|
消息中间件 关系型数据库 MySQL
从零玩转Docker之docker-compose快捷部署中间件2
从零玩转Docker之docker-compose快捷部署中间件
855 0
|
3月前
|
中间件 关系型数据库 MySQL
史上最详细Docker安装Mycat中间件 | 实现主从的读写分离
史上最详细Docker安装Mycat中间件 | 实现主从的读写分离
248 2
|
12月前
|
NoSQL 中间件 Nacos
从零玩转Docker之docker-compose快捷部署中间件1
从零玩转Docker之docker-compose快捷部署中间件
187 0
|
消息中间件 运维 Java
【消息中间件】你还不会在Docker下安装RocketMQ吗?
在学习消息中间件-RocketMQ之前,先来准备一下学习环境的搭建,下面分享一下Docker环境中安装RocketMQ和RocketMQ-Console。
|
消息中间件 Cloud Native Java
云原生之使用Docker部署RabbitMQ消息中间件
云原生之使用Docker部署RabbitMQ消息中间件
203 5
|
1天前
|
Shell 调度 Docker
在Docker中,如何清理批量后台停止的容器?
在Docker中,如何清理批量后台停止的容器?
|
1天前
|
存储 Ubuntu 应用服务中间件
在Docker中,怎么快速查看本地的镜像和容器?
在Docker中,怎么快速查看本地的镜像和容器?