Docker中安装ElasticSearch
2023-09-10 本文已影响0人
码农工号9527
选创建专用网络
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
查看

