一篇文章学会在Linux上使用Docker轻松部署Elasticsearch与Kibana,超详细!
首先,我们需要创建一个自定义网络,让Elasticsearch和Kibana能够互相通信。在Docker中,网络可以用来连接多个容器,让它们能够相互通信。容器通信:自定义网络允许在同一网络中的容器之间进行通信。通过将容器连接到相同的网络,它们可以通过容器名称或IP地址相互访问,而无需暴露主机端口。隔离性:自定义网络提供了一种隔离容器的方式,使得不同网络中的容器默认情况下无法直接通信。这增加了容器之
❤️️💚💙💛🧡💜🖤🤍🧡
大家好!我是曾续缘🥰
欢迎关注💕
❤️点赞 👍 收藏 ⭐再看,养成习惯
🔥钟不会逆时针而转,时光也不会为谁停留,与其为流逝的时光惶恐不安,还不如踏踏实实抓住每分每秒。📚
大家好,我是曾续缘。在上一个教程中,我们成功安装了docker,这次我们将使用Docker来搭建Elasticsearch与Kibana的环境,并实现它们的互联。
1. 创建自定义网络
首先,我们需要创建一个自定义网络,让Elasticsearch和Kibana能够互相通信。在命令行中执行以下命令:
docker network create es-net
在Docker中,网络可以用来连接多个容器,让它们能够相互通信。
通过创建自定义网络,我们可以实现以下目的:
- 容器通信:自定义网络允许在同一网络中的容器之间进行通信。通过将容器连接到相同的网络,它们可以通过容器名称或IP地址相互访问,而无需暴露主机端口。
- 隔离性:自定义网络提供了一种隔离容器的方式,使得不同网络中的容器默认情况下无法直接通信。这增加了容器之间的安全性,并减少了不必要的暴露。
- 连接外部网络:自定义网络还可以用于将容器连接到外部网络,例如主机网络或其他自定义网络。这样,容器可以访问Internet或与其他服务进行通信。
2. 拉取Elasticsearch镜像并创建挂载点目录
拉取Elasticsearch的Docker镜像
docker pull elasticsearch:8.7.0
3. 建用于持久化存储数据的挂载点目录
创建用于持久化存储数据的挂载点目录:
mkdir -p /usr/local/es/{data,config,plugins}
授权挂载点目录的访问权限:
chmod 777 /usr/local/es/{data,config,plugins}
4. 启动Elasticsearch容器
现在,我们可以通过以下命令启动Elasticsearch容器:
docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms128m -Xmx128m" \
elasticsearch:8.7.0
docker run
:表示启动一个新的Docker容器。-d
:表示以“detached”模式运行容器,即容器在后台运行(即“守护进程”模式)。--restart=always
:指定容器应该在任何情况下都自动重启,确保Elasticsearch服务不会意外停止。容器随docker自动启动。--name es
:给容器命名为“es”,方便管理和查找。--network es-net
:将容器连接到名为“es-net”的自定义网络,确保容器可以与其他服务进行通信。-p 9200:9200
:将容器内部的9200端口映射到主机的9200端口上。这是Elasticsearch REST API使用的默认端口。-p 9300:9300
:将容器内部的9300端口映射到主机的9300端口上。这是Elasticsearch节点之间通信使用的端口。--privileged
:授予容器特权,使其可以访问主机的设备和文件系统。-v /usr/local/es/data:/usr/share/elasticsearch/data
:将主机上的/usr/local/es/data
目录挂载到容器内部的/usr/share/elasticsearch/data
目录上,以便持久化存储Elasticsearch数据。-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins
:将主机上的/usr/local/es/plugins
目录挂载到容器内部的/usr/share/elasticsearch/plugins
目录上,以便安装和管理Elasticsearch插件。-e "discovery.type=single-node"
:指定Elasticsearch的发现类型为“单节点模式”,因为我们只有一个Elasticsearch节点。-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
:指定JVM堆内存的最小和最大大小,这里设置为512MB。这是Elasticsearch所需的最小值,可以根据需要进行调整。elasticsearch:8.7.0
:指定要使用的Docker镜像的名称和版本号。在本例中,使用的是Elasticsearch 8.7.0版本的镜像。
要删除一个已创建的Docker容器,您可以使用以下命令:
docker rm -f es
这将删除名为"es"的容器。使用"-f"标志可以强制删除正在运行的容器。
5. 关闭密码安全验证
将ES容器内的配置文件elasticsearch.yml
复制到本地目录/usr/local/es/config/
。这样可以方便地对配置文件进行修改。
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /usr/local/es/config/
打开刚刚复制的配置文件。
vim /usr/local/es/config/elasticsearch.yml
关闭ES的密码安全验证功能。
xpack.security.enabled: false
将修改后的配置文件重新复制回ES容器内的配置目录,以使修改生效。
docker cp /usr/local/es/config/elasticsearch.yml es:/usr/share/elasticsearch/config/
重启ES容器,使新的配置生效。
docker restart es
使用浏览器打开 http://<your_ip>:9200
。如果一切顺利,我们将看到类似于您提供的截图,显示ES的基本信息。
6. 拉取Kibana镜像
类似地,我们也需要拉取Kibana的Docker镜像。
docker pull kibana:8.7.0
7. 建用于持久化存储数据的挂载点目录
创建用于持久化存储数据的挂载点目录:
mkdir -p /usr/local/kibana/{data,config}
授权挂载点目录的访问权限:
chmod 777 /usr/local/kibana/{data,config}
8. 启动Kibana容器
我们可以通过以下命令启动Kibana容器:
docker run -d \
--name kibana \
--network es-net \
-p 5601:5601 \
-v /usr/local/kibana/data:/usr/share/kibana/data \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.7.0
-p 5601:5601
: 这个选项指定端口映射,将Docker主机上的端口5601映射到容器内部的端口5601,这样就可以通过主机上的IP地址和端口访问Kibana Web界面。-e ELASTICSEARCH_HOSTS=http://es:9200
: 这个选项是设置一个环境变量,其中ELASTICSEARCH_HOSTS指定了Elasticsearch的地址
这个命令会启动一个名为"kibana"的Kibana容器,并将其连接到之前创建的自定义网络"es-net"。容器将会在后台运行。
我们还将主机的5601端口映射到容器的5601端口,以便可以通过主机的IP地址访问Kibana的Web界面。
在环境变量ELASTICSEARCH_HOSTS
中,我们指定了Elasticsearch的地址。这样,Kibana就能够连接到Elasticsearch,并显示其数据。
9. 配置中文
将Kibana容器中的配置文件kibana.yml
复制到本地目录
docker cp kibana:/usr/share/kibana/config/kibana.yml /usr/local/kibana/config/
打开复制到本地的kibana.yml
文件
vim /usr/local/kibana/config/kibana.yml
添加以下配置来设置Kibana的语言为中文
i18n.locale: "zh-CN"
将修改后的kibana.yml
文件复制回Kibana容器
docker cp /usr/local/kibana/config/kibana.yml kibana:/usr/share/kibana/config/
重新启动Kibana容器使配置生效
docker restart kibana
10. 测试Kibana是否安装成功
最后,我们可以通过浏览器访问虚拟机地址+端口号,即http://<your_ip>:5601/
,来测试Kibana是否安装成功。
http://localhost:5601/
如果一切正常,您应该能够看到Kibana的欢迎界面。
11. 安装IK分词器
如果您需要在Elasticsearch中安装IK分词器,可以进入Elasticsearch容器,并执行以下命令:
docker exec -it es /bin/bash
docker exec
:这是Docker命令的一部分,用于在运行中的容器内部执行命令。-it
:这是两个选项的组合。-i
表示交互式操作,-t
表示分配一个伪终端。结合起来,这两个选项允许用户与正在运行的容器进行交互,并提供一个类似于本地终端的命令行界面。es
:这是要操作的目标容器的名称或ID,即"elasticsearch"容器的名称。/bin/bash
:这是要在容器内部执行的命令,即启动一个Bash shell。Bash shell是一个常见的Unix shell,它为用户提供了在容器内部执行命令和操作的接口。
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.7.0/elasticsearch-analysis-ik-8.7.0.zip
./bin/elasticsearch-plugin
表示执行Elasticsearch的插件管理工具,install
是指示该工具安装插件的命令。后面的URL链接https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.7.0/elasticsearch-analysis-ik-8.7.0.zip
指向插件的压缩包文件。
运行该命令时,Elasticsearch会自动下载插件压缩包,并将其解压到适当的目录中。
以上就是使用Docker搭建Elasticsearch与Kibana环境的详细步骤。希望本教程对您有所帮助!
更多推荐
所有评论(0)