1.镜像

镜像是只读的模板,包含运行应用所需的代码、库、环境配置和文件系统(如 Ubuntu 系统、Nginx 服务器、Python 环境等)。 特点:静态的、不可修改的(类似安装程序的 .iso 文件)。

镜像的只读指的是他对应的容器不可以修改镜像,如果镜像修改后

2. 容器

容器是镜像的运行时实例,像一个轻量级的隔离进程,拥有自己的文件系统、网络和进程空间。

特点: 1.动态的、可读写的(基于镜像创建后,会添加一个可写层)。 2.资源隔离(通过 Linux 的 Namespace 和 Cgroups 实现)。 3.短暂性(容器停止后,可写层的改动默认不会保存到镜像中)。 4.类比理解: 镜像 ≈ 安装包 如 mysql-8.0.msi 是一个安装包(镜像),你可以用它多次安装 MySQL(容器)。 容器 ≈ 安装后的程序 每次安装(docker run)都会生成一个独立的 MySQL 服务(容器),互不干扰。

修改容器并不会影响到镜像,就像软件不能影响到安装包一样

3.数据卷(volume)

数据真正保存的地方,只要数据挂载了数据卷,即使容器删除了,数据依然会存在

3.es

1.是什么

Elasticsearch(简称 ES)是一个开源的 分布式搜索和分析引擎,基于 Apache Lucene 构建

2.为什么es通常在docker上部署

  1. 快速部署与隔离

  • 传统方式:需手动安装 Java、配置 ES、处理依赖,可能遇到环境冲突。

  • Docker 方式:一条命令即可运行,避免污染主机环境。

2. 一致性环境

  • 开发、测试、生产环境一致,避免“在我机器上能跑”的问题。 Docker 通过 镜像的不可变性 + 容器的隔离性 + 依赖的显式声明,确保从开发到生产的环境一致性。

  • 镜像版本固定,确保团队使用相同的 ES 版本。

3. 资源隔离与扩展

  • 通过 Docker 限制 ES 的内存/CPU,避免占用主机全部资源。

4. 简化运维

  • 数据持久化:通过 Docker 卷(Volume)管理 ES 数据,即使容器删除数据仍保留。

3.es为什么查询速度很快

1.它使用倒排索引

倒排索引是一种按关键词组织文档的数据结构,用于加快全文检索。

简单说,就是“词 → 出现在哪些文档”。

2.分布式架构:横向扩展、并发加速

Elasticsearch 是天然分布式系统,支持自动分片、复制、副本、负载均衡。