实战:使用docker容器化服务与文件挂载-2

接着上文,演示Elasticsearch 和 Kibana 的安装,并讲解文件挂载

Elasticsearch of Docker (Kibana)

1、Elasticsearch 安装

ElasticSearch 使用 Docker

安装:https://www.yuque.com/zhangshuaiyin/guli-mall/dwrp5b

1.拉取镜像文件

bash 复制代码
# 存储和检索数据
docker pull elasticsearch:7.4.2

# 可视化检索数据
docker pull kibana:7.4.2

2.配置挂载数据文件夹

bash 复制代码
# 创建配置文件目录
mkdir -p /mydata/elasticsearch/config

# 创建数据目录
mkdir -p /mydata/elasticsearch/data

# 将/mydata/elasticsearch/文件夹中文件都可读可写
chmod -R 777 /mydata/elasticsearch/

# 配置任意机器可以访问 elasticsearch
echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml

3.启动 Elasticsearch

bash 复制代码
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e  "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v  /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2 
  • docker run: 这是 Docker 命令的开头,表示要运行一个新的容器。
  • --name elasticsearch: 指定容器的名称为 "elasticsearch"。
  • -p 9200:9200 -p 9300:9300: 将容器的端口映射到主机的端口,9200端口用于HTTP访问Elasticsearch,9300端口用于集群通信。
  • -e "discovery.type=single-node": 设置 Elasticsearch 的发现类型为单节点模式,这是一个简化配置,适用于单个节点的情况。
  • -e ES_JAVA_OPTS="-Xms64m -Xmx512m": 设置 Elasticsearch 的 Java 虚拟机选项,指定了最小内存 -Xms 和最大内存 -Xmx。
  • -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml: 这是文件挂载(Volume Mounting)的部分,将主机上的 elasticsearch.yml 配置文件挂载到容器内的对应路径。这样做可以在容器外部修改配置,而无需重新构建镜像。
  • -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data: 将主机上的数据目录挂载到容器内 Elasticsearch 的数据目录,这样可以确保数据持久化并在容器重启后不会丢失。
  • -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins: 挂载插件目录,允许您安装或保存 Elasticsearch 插件。

文件挂载(Volume Mounting)的重要性:

文件挂载允许将宿主机(主机系统)上的目录或文件与容器内部的目录或文件进行映射。在这个命令中,挂载了三个目录:配置文件目录、数据目录和插件目录。

为什么要进行文件挂载:

配置持久化: 将配置文件挂载到容器内,使得容器中的服务可以读取外部的配置文件。这样做有助于保持配置的持久性,并且能够在需要时进行修改而无需重新构建镜像。

数据持久化: 将数据目录挂载到容器内部的数据目录,这样即使容器停止或删除,数据也会保留在宿主机上。这对于数据库等需要持久化数据的服务特别重要,可以避免数据丢失。

插件管理: 通过挂载插件目录,可以将 Elasticsearch 插件放置在宿主机上,使其对容器内的 Elasticsearch 服务可用。这样做使得插件的管理更为灵活,并且不会丢失插件数据。

综上所述,文件挂载(Volume

Mounting)是为了方便对容器进行配置、数据持久化和插件管理,让容器内的服务能够更灵活地与宿主机进行交互,并确保重要数据和配置的安全性和持久性。

2、Kibana 安装

1.启动可视化 Kibana

bash 复制代码
docker run --name kibana \
-e ELASTICSEARCH_HOSTS=http://47.97.36.25:9200 \
-p 5601:5601 \
-d kibana:7.4.2
-e ELASTICSEARCH_HOSTS=http://47.97.36.25:9200: 这里要设置成自己的虚拟机IP地址

浏览器输入 http://47.97.36.25:5601/ 测试:

2.设置 Kibana 和 Elasticsearch 随 Docker 启动

bash 复制代码
# 当前 Docker 开机自启,所以 ES 现在也是开机自启
docker update elasticsearch --restart=always

# 当前 Docker 开机自启,所以 kibana 现在也是开机自启
docker update kibana --restart=always
相关推荐
贝锐18 分钟前
Docker部署Teemii本地漫画库,并通过花生壳内网穿透实现远程访问
docker
smaller_maple1 小时前
linux问题记录1
linux·运维·服务器
阿星智力囊3 小时前
Thinkphp6+nginx环境报错信息不显示,接口直接报500和CORS跨域(错误的引导方向),真坑啊
运维·nginx·php·thinkphp6
i***22074 小时前
springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice
spring boot·后端·docker
大柏怎么被偷了5 小时前
【Linux】进程等待
linux·运维·服务器
star_11126 小时前
Jenkins部署后端springboot微服务项目
spring boot·微服务·jenkins
云和数据.ChenGuang6 小时前
运维面试题之oracle和mysql单表最大容量
运维·mysql·oracle
酷柚易汛智推官6 小时前
Fastlane赋能移动研发:从全流程自动化到工程效能升级
运维·自动化·酷柚易汛
落798.6 小时前
Genlogin × Bright Data,一键解锁自动化采集的高成功率方案
运维·自动化·数据采集·亮数据
羑悻的小杀马特6 小时前
轻量跨云·掌控无界:Portainer CE + cpolar 让远程容器运维像点外卖一样简单——免复杂配置,安全直达对应集群
运维·网络·安全·docker·cpolar