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上部署
快速部署与隔离
传统方式:需手动安装 Java、配置 ES、处理依赖,可能遇到环境冲突。
Docker 方式:一条命令即可运行,避免污染主机环境。
2. 一致性环境
开发、测试、生产环境一致,避免“在我机器上能跑”的问题。 Docker 通过 镜像的不可变性 + 容器的隔离性 + 依赖的显式声明,确保从开发到生产的环境一致性。
镜像版本固定,确保团队使用相同的 ES 版本。
3. 资源隔离与扩展
通过 Docker 限制 ES 的内存/CPU,避免占用主机全部资源。
4. 简化运维
数据持久化:通过 Docker 卷(Volume)管理 ES 数据,即使容器删除数据仍保留。
3.es为什么查询速度很快
1.它使用倒排索引
倒排索引是一种按关键词组织文档的数据结构,用于加快全文检索。
简单说,就是“词 → 出现在哪些文档”。
2.分布式架构:横向扩展、并发加速
Elasticsearch 是天然分布式系统,支持自动分片、复制、副本、负载均衡。
评论