自己记录docker和ES集群

LINUX 安装docker 和ES完全详细过程。

(https://blog.csdn.net/weixin_45844208/article/details/140521002)

安装的docker版本为 26.1.0

https://download.docker.com/linux/static/stable/x86_64/

安装的docker-compose的版本为:2.28.1

https://github.com/docker/compose/releases/download

https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-linux-x86_64

1:上传到服务器然后解压

sudo tar -zxvf docker-26.1.4-x86_64.tgz

2:给权限

sudo chmod 755 -R docker

3:复制到环境变量目录

sudo cp docker/* /usr/bin/

4:配置创建docker服务配置文件docker.service

sudo vim /etc/systemd/system/docker.service

添加如下内容

Unit

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target firewalld.service

Wants=network-online.target

Service

Type=notify

ExecStart=/usr/bin/dockerd

ExecReload=/bin/kill -s HUP $MAINPID

TimeoutSec=0

RestartSec=2

ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT

Restart=always

TimeoutStartSec=0

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

Delegate=yes

KillMode=process

StartLimitBurst=3

StartLimitInterval=60s

Install

WantedBy=multi-user.target

5:# 赋予docker服务配置文件docker.service执行权限

sudo chmod +x /etc/systemd/system/docker.service

6:docker服务相关命令

加载systemctl配置

sudo systemctl daemon-reload

启用docker服务开机自启动

sudo systemctl enable docker.service

启动docker服务

sudo systemctl start docker

检查docker服务状态

sudo systemctl status docker

查看安装的docker版本

sudo docker -v

查看更改自定义后的docker服务信息

sudo docker info

二:安装docker-compose

复制docker-compose到/usr/local/bin/目录下

sudo cp -f docker-compose-linux-x86_64.v2.28.1 /usr/local/bin/docker-compose

赋予docker-compose可执行权限

sudo chmod +x /usr/local/bin/docker-compose

查看docker-compose版本

sudo docker-compose -v

三:安装部署ES集群

本次安装的ES版本为7.17.25

-1:本次为离线安装,首先需要在有线电脑下载镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.25

0:将镜像打包然后上传到服务器

docker save docker.elastic.co/elasticsearch/elasticsearch:7.17.25 -o elasticsearch-7.17.25.tar

0.1:然后在服务器上通过docker加载这个镜像

docker load -i elasticsearch-7.17.25.tar

0.2然后通过docker就可以看大这个镜像了

root@a_pnw_nginx03 \~# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

docker.elastic.co/elasticsearch/elasticsearch 7.17.25 2574569e84a1 5 weeks ago 634MB

  1. 创建Docker网络
    为了让集群中的各个节点可以互相通信,我们需要先创建一个Docker网络:

docker network create es-network

2编写:docker-compose.yml 内容如下

注意:下面image 的内容就是上面展示镜像REPOSITORY的名字

services:

es01:

image: "docker.elastic.co/elasticsearch/elasticsearch:7.17.25"

container_name: es01

ports:

  • "9200:9200"

  • "9300:9300"

environment:

node.name: es01

discovery.seed_hosts: es01,es02,10.189.131.82:9300,10.189.131.82:9301

cluster.initial_master_nodes: es01,es02,10.189.131.82:9300,10.189.131.82:9301

cluster.name: myescluster

http.cors.enabled: true

http.cors.allow-origin: "*"
ES_JAVA_OPTS: -Xms512m -Xmx512m
xpack.security.enabled: true
ELASTIC_PASSWORD: QAZ2@wsx
volumes:

  • "/usr/local/es_cluster/node_1/data:/usr/share/elasticsearch/data"
  • "/usr/local/es_cluster/node_1/logs:/usr/share/elasticsearch/logs"
  • "/usr/local/es_cluster/node_1/plugins:/usr/share/elasticsearch/plugins"
    networks:
  • es-network
    ulimits:
    memlock:
    soft: -1
    hard: -1
    es02:
    image: "docker.elastic.co/elasticsearch/elasticsearch:7.17.25"
    container_name: es02
    ports:
  • "9201:9200"
  • "9301:9300"
    environment:
    node.name: es02
    discovery.seed_hosts: es01,es02,10.189.131.82:9300,10.189.131.82:9301
    cluster.initial_master_nodes: es01,es02,10.189.131.82:9300,10.189.131.82:9301
    cluster.name: myescluster
    http.cors.enabled: true
    http.cors.allow-origin: "* "

ES_JAVA_OPTS: -Xms512m -Xmx512m

xpack.security.enabled: true

ELASTIC_PASSWORD: QAZ2@wsx

volumes:

  • "/usr/local/es_cluster/node_2/data:/usr/share/elasticsearch/data"

  • "/usr/local/es_cluster/node_2/logs:/usr/share/elasticsearch/logs"

  • "/usr/local/es_cluster/node_2/plugins:/usr/share/elasticsearch/plugins"

networks:

  • es-network

ulimits:

memlock:

soft: -1

hard: -1

networks:

es-network:

driver: bridge

3:服务器创建挂载目录

mkdir -p /usr/local/es_cluster/node_1/data

mkdir -p /usr/local/es_cluster/node_1/logs

mkdir -p /usr/local/es_cluster/node_1/plugins/ik

mkdir -p /usr/local/es_cluster/node_2/data

mkdir -p /usr/local/es_cluster/node_2/logs

mkdir -p /usr/local/es_cluster/node_2/plugins/ik

并给予执行权限

sudo chmod +x /usr/local/es_cluster/

4:下载中文分词器

https://github.com/medcl/elasticsearch-analysis-ik/releases

在这个链接找对应版本的分词器版本。没有就下载当前版本最高的

然后注意 如果分词版本和ES版本不一致需要将分词版本改为一致

分词下载后需要解压到 映射目录

执行

unzip /wls/pansky/elasticsearch-analysis-ik-7.17.6.zip -d /usr/local/es_cluster/node_1/plugins/ik

unzip /wls/pansky/elasticsearch-analysis-ik-7.17.6.zip -d /usr/local/es_cluster/node_2/plugins/ik

然后修改版本号

cd /usr/local/es_cluster/node_1/plugins/ik

vim plugin-descriptor.properties

修改两处地方哦。

改为和ES版本一致的版本号

5:然后在服务新建一个目录单独存放ES的docker-compose.yml

用户名不可以自己定义 是系统默认的 elastic

然后执行:docker-compose up -d

就可以启动成功。

通过 docker ps -a 查看启动情况

如果报错 可以通过 docker-compose up 查看错误原因。

或者 docker logs 服务名字查看日志

docker-compose down

curl -u elastic:QAZ2@wsx -X GET "http://10.190.131.81:9200/_cat/nodes?v"

相关推荐
极客先躯12 小时前
高级java每日一道面试题-2026年05月03日-实战篇[Docker]-如何实现容器化环境的数据加密?
java·运维·docker·容器·金融·加解密·高级面试
Ai拆代码的曹操12 小时前
Git 集成:AI 代理中的版本控制工作流设计
大数据·git·elasticsearch
ChaITSimpleLove14 小时前
SimpleIdServer 6.0.4 Docker Compose 实战部署指南
运维·docker·容器·身份认证·id-server·simpleidserver
Elasticsearch14 小时前
Elastic Observability 更新后的指标定价:业界领先的指标能力 —— 现在成本也更低!
elasticsearch
Elasticsearch14 小时前
Elastic 新的指标能力将显著提升公共部门 IT 的正常运行时间
elasticsearch
程序喵大人16 小时前
【C++进阶】STL容器与迭代器 - 05 map 和 set 为什么按键保持有序
开发语言·c++·容器·迭代器·stl
Elasticsearch17 小时前
Elastic 作为创始成员加入 Open Secure AI Alliance,与 NVIDIA 及行业领导者共同推动 AI 安全与保障
elasticsearch
Elasticsearch17 小时前
你的 agents 一直在记录凭证:将 Elastic Agent Builder 内置的 OTel traces 转换为 Kibana 中的 token 成本
elasticsearch
风曦Kisaki18 小时前
Kubernetes(K8s)笔记Day03: Pod命名空间,标签,Pod 的调度,污点与容忍度,Pod 常见状态和重启策略,Pod 生命周期
linux·运维·笔记·docker·云原生·容器·kubernetes
张忠琳18 小时前
【NVIDIA】NVIDIA k8s-device-plugin v0.19.3 资源管理器模块深度分析之三
云原生·容器·架构·kubernetes·nvidia