天天看點

使用Docker安裝Elasticsearch & Kibana

作者:寫代碼的lorre

安裝Docker

MacOS手動下載下傳安裝

安裝桌面版本:https://www.docker.com/products/docker-desktop/

使用Docker安裝Elasticsearch & Kibana

Docker Desktop

選擇對應的版本:

  • Intel Chip:Intel晶片
  • Apple Chip:最新的Apple晶片

按照步驟安裝即可

配置鏡像加速

由于國内網絡問題,拉取Docker鏡像會比較慢,我們可以通過配置鏡像加速來解決

配置路徑:在工作列點選 Docker for mac 應用圖示 -> Perferences... -> Docker Engine

配置檔案:

{
  "features": {
    "buildkit": true
  },
  "experimental": false,
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn/",
    "https://hub-mirror.c.163.com/"
  ]
}           

配置完成後,重新開機即可

Docker Compose

Docker Desktop包含了Docker Compose

使用yml來管理多個容器的啟動和關閉

目錄結構:

- docker-es
    - docker-compose.yml
    - elasticsearch
        - elasticsearch.yml
    - kibana
        - kibana.yml           

使用步驟:

  1. 拉取elasticsearch鏡像
docker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.10
docker run --name es01-test --net elastic -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.10           

檢視容器内的elasticsearch配置檔案

# 進入容器後開啟一個新的終端,可以在裡面操作
docker exec -it es01-test /bin/bash
# 檢視配置檔案
cat /usr/share/elasticsearch/config/elasticsearch.yml           

在docker-es目錄下,建立elasticsearch目錄,複制配置檔案内容,建立elasticsearch.yml

# 自定義elasticsearch配置
cluster.name: "docker-cluster"
network.host: 0.0.0.0           
  1. 拉取kibana鏡像
docker pull docker.elastic.co/kibana/kibana:7.17.10
docker run --name kib01-test --net elastic -p 127.0.0.1:5601:5601 -e "ELASTICSEARCH_HOSTS=http://es01-test:9200" docker.elastic.co/kibana/kibana:7.17.10           

檢視容器内的kibana配置檔案

# 進入容器後開啟一個新的終端,可以在裡面操作
docker exec -it kib01-test /bin/bash
# 檢視配置檔案
cat /usr/share/kibana/config/kibana.yml           

在docker-es目錄下,建立kibana目錄,複制配置檔案内容,建立kibana.yml

# 自定義kibana配置
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]           
  1. 在docker-es目錄下,建立docker-compose.yml,編排好容器的啟動和依賴

docker-compose.yml

version: '3.8'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.10
    container_name: elasticsearch
    volumes:
      - ./elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./elasticsearch/data:/usr/share/elasticsearch/data
      - ./elasticsearch/log:/usr/share/elasticsearch/log
    ports:
      - 9200:9200
    restart: always
    environment:
      - xpack.security.enabled=false
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
  kibana:
    depends_on:
      - elasticsearch
    image: docker.elastic.co/kibana/kibana:7.17.10
    container_name: kibana
    volumes:
      - ./kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
      - ./kibana/data:/usr/share/kibana/data
    ports:
      - 5601:5601
    restart: always
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200           
  1. 在docker-compose.yml目錄下,執行docker-compose up -d,一鍵部署上線。通過http://localhost:5601通路kibana

docker-compose常用指令:

建立所有服務并且啟動服務

# 前台啟動
docker-compose up
# 背景啟動
docker-compose up -d           

重新開機服務

docker-compose restart           

停止服務

docker-compose stop           

再次啟動服務

docker-compose start           

停止、删除所有的服務以及網絡、鏡像

docker-compose down