自己记录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"

相关推荐
huosenbulusi5 小时前
helm推送到harbor私有库--http: server gave HTTP response to HTTPS client
云原生·容器·k8s
不会飞的小龙人5 小时前
Docker Compose创建镜像服务
linux·运维·docker·容器·镜像
不会飞的小龙人5 小时前
Docker基础安装与使用
linux·运维·docker·容器
Dusk_橙子6 小时前
在elasticsearch中,document数据的写入流程如何?
大数据·elasticsearch·搜索引擎
张3蜂6 小时前
docker Ubuntu实战
数据库·ubuntu·docker
喝醉酒的小白8 小时前
Elasticsearch 中,分片(Shards)数量上限?副本的数量?
大数据·elasticsearch·jenkins
熟透的蜗牛10 小时前
Elasticsearch 8.17.1 JAVA工具类
elasticsearch
元气满满的热码式10 小时前
K8S中Service详解(三)
云原生·容器·kubernetes
染诗11 小时前
docker部署flask项目后,请求时总是报拒绝连接错误
docker·容器·flask
张3蜂12 小时前
docker 部署.netcore应用优势在什么地方?
docker·容器·.netcore