美文网首页
Docker中安装ElasticSearch

Docker中安装ElasticSearch

作者: 码农工号9527 | 来源:发表于2023-09-10 16:32 被阅读0次

选创建专用网络

docker network create es-net

下载镜像 版本号要不一定要太高的,否则可能没有对应的IK和kibana

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

镜像名太长了改成es

[root@localhost ~]# docker images
REPOSITORY                                      TAG       IMAGE ID       CREATED        SIZE
redis                                           latest    506734eb5e71   3 weeks ago    138MB
mysql                                           5.7       92034fe9a41f   5 weeks ago    581MB
docker.elastic.co/elasticsearch/elasticsearch   8.7.0     fd60cca4e217   5 months ago   1.33GB
mysql                                           8.0.20    be0dbf01a0f3   3 years ago    541MB
[root@localhost ~]# docker tag fd60cca4e217 es:8.7.0
[root@localhost ~]# docker rmi docker.elastic.co/elasticsearch/elasticsearch:8.7.0
Untagged: docker.elastic.co/elasticsearch/elasticsearch:8.7.0
Untagged: docker.elastic.co/elasticsearch/elasticsearch@sha256:9fe38a4dc00ce101630e70a966aad1a195b56bceb779748e6c399ceeb45cffab
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
redis        latest    506734eb5e71   3 weeks ago    138MB
mysql        5.7       92034fe9a41f   5 weeks ago    581MB
es           8.7.0     fd60cca4e217   5 months ago   1.33GB
mysql        8.0.20    be0dbf01a0f3   3 years ago    541MB

1. 单机

先安装一个默认版本

docker run -d --name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
es:8.7.0

[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS         PORTS                                                                                  NAMES
869cdd50fd80   es:8.7.0       "/bin/tini -- /usr/l…"   4 seconds ago   Up 3 seconds   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   es
ecad913970bf   mysql:8.0.20   "docker-entrypoint.s…"   3 weeks ago     Up 2 weeks     0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                   mysql
e3bc4fe5b4e1   redis          "docker-entrypoint.s…"   3 weeks ago     Up 2 weeks     0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                              redis

复制容器配置文件

[root@localhost ~]# mkdir -p /mydata/es/8.7.0/es1
[root@localhost ~]# docker cp es:/usr/share/elasticsearch/config /mydata/es/8.7.0/es1
Successfully copied 65.5kB to /mydata/es/8.7.0/es1
[root@localhost ~]# ll /mydata/es/8.7.0/es1/
总用量 4
drwxrwxr-x. 4 root root 4096 9月  11 14:18 config
[root@localhost ~]# ll /mydata/es/8.7.0/es1/config/
总用量 60
drwxr-x---. 2 root root    62 9月  11 14:18 certs
-rw-rw----. 1 root root   439 9月  11 14:18 elasticsearch.keystore
-rw-rw-r--. 1 root root  1042 3月  28 00:30 elasticsearch-plugins.example.yml
-rw-rw-r--. 1 root root   956 9月  11 14:18 elasticsearch.yml
-rw-rw-r--. 1 root root  2569 3月  28 00:30 jvm.options
drwxrwxr-x. 2 root root     6 3月  28 00:32 jvm.options.d
-rw-rw-r--. 1 root root 17770 3月  28 00:33 log4j2.file.properties
-rw-rw-r--. 1 root root 12350 3月  28 00:37 log4j2.properties
-rw-rw-r--. 1 root root   473 3月  28 00:33 role_mapping.yml
-rw-rw-r--. 1 root root   197 3月  28 00:33 roles.yml
-rw-rw-r--. 1 root root     0 3月  28 00:33 users
-rw-rw-r--. 1 root root     0 3月  28 00:33 users_roles

创建目录

[root@localhost ~]# mkdir /mydata/es/8.7.0/es1/data
[root@localhost ~]# mkdir /mydata/es/8.7.0/es1/plugins
[root@localhost ~]# mkdir /mydata/es/8.7.0/es1/logs

设置权限

chmod 777 /mydata/es/8.7.0/es1/*

删除容器

[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS         PORTS                                                                                  NAMES
869cdd50fd80   es:8.7.0       "/bin/tini -- /usr/l…"   8 minutes ago   Up 8 minutes   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   es
ecad913970bf   mysql:8.0.20   "docker-entrypoint.s…"   3 weeks ago     Up 2 weeks     0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                   mysql
e3bc4fe5b4e1   redis          "docker-entrypoint.s…"   3 weeks ago     Up 2 weeks     0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                              redis
[root@localhost ~]# docker stop 869cdd50fd80
869cdd50fd80
[root@localhost ~]# docker rm 869cdd50fd80
869cdd50fd80
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED       STATUS       PORTS                                                  NAMES
ecad913970bf   mysql:8.0.20   "docker-entrypoint.s…"   3 weeks ago   Up 2 weeks   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
e3bc4fe5b4e1   redis          "docker-entrypoint.s…"   3 weeks ago   Up 2 weeks   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp              redis

重新创建

docker run -d --name es1 \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v /mydata/es/8.7.0/es1/config:/usr/share/elasticsearch/config \
-v /mydata/es/8.7.0/es1/data:/usr/share/elasticsearch/data \
-v /mydata/es/8.7.0/es1/logs:/usr/share/elasticsearch/logs \
-v /mydata/es/8.7.0/es1/plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
es:8.7.0

说明:
-e "cluster.name=es-docker-cluster":设置集群名称
-e "http.host=0.0.0.0":监听的地址,可以外网访问
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小
-e "discovery.type=single-node":非集群模式
-v /mydata/es/8.7.0/es1/config:/usr/share/elasticsearch/config 挂载逻辑卷,绑定 es 的数据目录
--privileged:授予逻辑卷访问权
--network es-net :加入一个名为 es-net 的网络中
-p 9200:9200:端口映射配置

es8 安全功能

es8 默认开启安全功能, 外部无法直接访问
修改配置文件 vi /mydata/es/8.7.0/es1/config/elasticsearch.yml
xpack.security.enabled: true 该为false
重启容器访问curl http://127.0.0.1:9200返回一个json格式表示访问成功

{
  "name" : "bae8182f03d5",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "ygfYIZLQQb2txz51F0RCUA",
  "version" : {
    "number" : "8.7.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "09520b59b6bc1057340b55750186466ea715e30e",
    "build_date" : "2023-03-27T16:31:09.816451435Z",
    "build_snapshot" : false,
    "lucene_version" : "9.5.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

2. 集群

停止并删除上面已经建好的 es1 容器

docker stop <容器ID>
docker rm <容器ID>

复制容器配置文件

[root@localhost ~]# mkdir -p /mydata/es/8.7.0/es2
[root@localhost ~]# cp -r /mydata/es/8.7.0/es1/* /mydata/es/8.7.0/es2
[root@localhost ~]# chmod 777 /mydata/es/8.7.0/es2/*
[root@localhost ~]# ll /mydata/es/8.7.0/es2
总用量 4
drwxrwxrwx. 4 root root 4096 9月  11 15:04 config
drwxrwxrwx. 2 root root    6 9月  11 15:04 data
drwxrwxrwx. 2 root root    6 9月  11 15:04 logs
drwxrwxrwx. 2 root root    6 9月  11 15:04 plugins

启动容器

docker run -d \
--name=es1 \
--restart=always \
--net es-net \
-e node.name=es1 \
-e node.roles=[master,remote_cluster_client] \
-e network.host=es1 \
-e discovery.seed_hosts=es1,es2 \
-e cluster.initial_master_nodes=es1 \
-e cluster.name=dp-cluster \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-p 9201:9200 \
-p 9301:9300 \
-v /mydata/es/8.7.0/es1/plugins:/usr/share/elasticsearch/plugins \
-v /mydata/es/8.7.0/es1/data:/usr/share/elasticsearch/data \
-v /mydata/es/8.7.0/es1/config:/usr/share/elasticsearch/config \
-v /mydata/es/8.7.0/es1/logs:/usr/share/elasticsearch/logs \
--privileged \
es:8.7.0

docker run -d \
--name=es2 \
--restart=always \
--net es-net \
-e node.name=es2 \
-e node.roles=[data,remote_cluster_client] \
-e network.host=es2 \
-e discovery.seed_hosts=es1,es2 \
-e cluster.initial_master_nodes=es1 \
-e cluster.name=dp-cluster \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-p 9202:9200 \
-p 9302:9300 \
-v /mydata/es/8.7.0/es2/plugins:/usr/share/elasticsearch/plugins \
-v /mydata/es/8.7.0/es2/data:/usr/share/elasticsearch/data \
-v /mydata/es/8.7.0/es2/config:/usr/share/elasticsearch/config \
-v /mydata/es/8.7.0/es2/logs:/usr/share/elasticsearch/logs \
--privileged \
es:8.7.0

如果遇到无法启动(无限重启)的话,重新设置max_map_count的值,sysctl -w vm.max_map_count=262144

安装 kibana

这里的版本号与ES保持一致

docker pull docker.elastic.co/kibana/kibana:8.7.0

镜像名称太长改成kibana:8.7.0

[root@localhost ~]# docker images
REPOSITORY                                              TAG               IMAGE ID       CREATED        SIZE
192.168.137.11:80/diy_gin_vue_admin/vue-docker          20230827-202036   d7fb39be32f4   2 weeks ago    51MB
192.168.137.11:80/diy_gin_vue_admin/gin-server-docker   20230827-193840   424823b2e644   2 weeks ago    84.8MB
192.168.137.11:80/jenkins/maven-docker                  20230826-023949   4640cc117faf   2 weeks ago    153MB
es                                                      8.7.0             fd60cca4e217   5 months ago   1.33GB
docker.elastic.co/kibana/kibana                         8.7.0             a96c64a53cfe   5 months ago   748MB
[root@localhost ~]# docker tag a96c64a53cfe kibana:8.7.0
[root@localhost ~]# docker rmi docker.elastic.co/kibana/kibana:8.7.0
Untagged: docker.elastic.co/kibana/kibana:8.7.0
Untagged: docker.elastic.co/kibana/kibana@sha256:14e0574d043eab9078e2ca64487334ad1dca2215d710b7321027e9f63c34449b
[root@localhost ~]# docker images
REPOSITORY                                              TAG               IMAGE ID       CREATED        SIZE
192.168.137.11:80/diy_gin_vue_admin/vue-docker          20230827-202036   d7fb39be32f4   2 weeks ago    51MB
192.168.137.11:80/diy_gin_vue_admin/gin-server-docker   20230827-193840   424823b2e644   2 weeks ago    84.8MB
192.168.137.11:80/jenkins/maven-docker                  20230826-023949   4640cc117faf   2 weeks ago    153MB
es                                                      8.7.0             fd60cca4e217   5 months ago   1.33GB
kibana                                                  8.7.0             a96c64a53cfe   5 months ago   748MB

启动一个默认容器复制配置文件

[root@localhost ~]# docker run --name kibana -d -p 5601:5601 kibana:8.7.0
c77b97df0c3b95fa3a8d07dcff993f6899da7a5d52ea10264996ef53f0036e26
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE                                                                   COMMAND                   CREATED         STATUS                     PORTS                                                                                  NAMES
c77b97df0c3b   kibana:8.7.0                                                            "/bin/tini -- /usr/l…"   5 seconds ago   Up 4 seconds               0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                              kibana
921b0d039415   es:8.7.0                                                                "/bin/tini -- /usr/l…"   8 minutes ago   Up 8 minutes               0.0.0.0:9202->9200/tcp, :::9202->9200/tcp, 0.0.0.0:9302->9300/tcp, :::9302->9300/tcp   es2
05ced21fe571   es:8.7.0                                                                "/bin/tini -- /usr/l…"   8 minutes ago   Up 8 minutes               0.0.0.0:9201->9200/tcp, :::9201->9200/tcp, 0.0.0.0:9301->9300/tcp, :::9301->9300/tcp   es1
b2cde63cf44a   192.168.137.11:80/diy_gin_vue_admin/vue-docker:20230827-202036          "/docker-entrypoint.…"   2 weeks ago     Exited (0) 2 weeks ago                                                                                            vue-docker
17e47a9bde95   192.168.137.11:80/diy_gin_vue_admin/gin-server-docker:20230827-193840   "/bin/sh -c './serve…"   2 weeks ago     Exited (0) 2 weeks ago                                                                                            gin-server-docker
b235bd6b3fb3   192.168.137.11:80/jenkins/maven-docker:20230826-023949                  "catalina.sh run"         2 weeks ago     Exited (143) 2 weeks ago                                                                                          maven-docker
[root@localhost ~]# mkdir -p /mydata/kibana/8.7.0
[root@localhost ~]# docker cp kibana:/usr/share/kibana/config /mydata/kibana/8.7.0/
Successfully copied 3.58kB to /mydata/kibana/8.7.0/
[root@localhost ~]# ll /mydata/kibana/8.7.0/config/
总用量 8
-rw-rw-r--. 1 root root 249 3月  27 19:36 kibana.yml
-rw-rw-r--. 1 root root 305 3月  27 19:21 node.options

删除 kibana 容器

[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE                                                                   COMMAND                   CREATED          STATUS                     PORTS                                                                                  NAMES
c77b97df0c3b   kibana:8.7.0                                                            "/bin/tini -- /usr/l…"   2 minutes ago    Up 2 minutes               0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                              kibana
921b0d039415   es:8.7.0                                                                "/bin/tini -- /usr/l…"   10 minutes ago   Up 10 minutes              0.0.0.0:9202->9200/tcp, :::9202->9200/tcp, 0.0.0.0:9302->9300/tcp, :::9302->9300/tcp   es2
05ced21fe571   es:8.7.0                                                                "/bin/tini -- /usr/l…"   10 minutes ago   Up 10 minutes              0.0.0.0:9201->9200/tcp, :::9201->9200/tcp, 0.0.0.0:9301->9300/tcp, :::9301->9300/tcp   es1
b2cde63cf44a   192.168.137.11:80/diy_gin_vue_admin/vue-docker:20230827-202036          "/docker-entrypoint.…"   2 weeks ago      Exited (0) 2 weeks ago                                                                                            vue-docker
17e47a9bde95   192.168.137.11:80/diy_gin_vue_admin/gin-server-docker:20230827-193840   "/bin/sh -c './serve…"   2 weeks ago      Exited (0) 2 weeks ago                                                                                            gin-server-docker
b235bd6b3fb3   192.168.137.11:80/jenkins/maven-docker:20230826-023949                  "catalina.sh run"         2 weeks ago      Exited (143) 2 weeks ago                                                                                          maven-docker
[root@localhost ~]# docker stop c77b97df0c3b
c77b97df0c3b
[root@localhost ~]# docker rm c77b97df0c3b
c77b97df0c3b

修改 kibana 配置

修改其中的 elasticsearch.hosts: [ "http://es1:9200" ,"http://es2:9200"]

启动 kibana

docker run -d \
--name kibana \
-v /mydata/kibana/8.7.0/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
--network=es-net \
-p 5601:5601  \
kibana:8.7.0

查看



相关文章

网友评论

      本文标题:Docker中安装ElasticSearch

      本文链接:https://www.haomeiwen.com/subject/hsjsvdtx.html