实战:使用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
相关推荐
七夜zippoe6 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
金刚猿6 小时前
01_虚拟机中间件部署_root 用户安装 docker 容器,配置非root用户权限
docker·中间件·容器
JH_Kong6 小时前
解决 WSL 中 Docker 权限问题:从踩坑到完整修复
docker·容器
忆~遂愿7 小时前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
Fcy6487 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满7 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠7 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey9038 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技9 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀9 小时前
Linux环境变量
linux·运维·服务器