Docker启动ES容器打包本地镜像

文章目录

  • 1、安装 Docker
  • 2、下载镜像
  • 3、查看已下载的镜像
  • 4、 保存和加载镜像
  • 5、.tar 文件与 Docker 镜像的关系
  • 6、如何从 .tar 文件加载 Docker 镜像
  • 7、为什么需要 .tar 文件?
  • 8、ES 8.x版本无法启动
    • 8.1 问题原因
    • 8.2 解决方案
    • 8.3 提交容器为新镜像

1、安装 Docker

如果你还没有安装 Docker,请先下载并安装 Docker Desktop for Mac:

访问 Docker 官网:https://www.docker.com/products/docker-desktop。

下载适用于 macOS 的 Docker Desktop 安装包。

双击安装包,按照提示完成安装。

安装完成后,启动 Docker Desktop。

2、下载镜像

方式一:使用 Docker CLI
Docker CLI 是 Docker 提供的命令行工具,可以通过终端操作 Docker。
(1)打开终端
在 macOS 上打开 终端(Terminal)。

(2)拉取 Docker 镜像
使用 docker pull 命令下载镜像。例如,拉取官方的 elasticsearch 镜像:

docker pull elasticsearch

(3)指定镜像版本
如果需要下载特定版本的镜像,可以在镜像名称后加上标签(tag)。例如,拉取 elasticsearch 的 7.17.0 版本:

docker pull elasticsearch:7.17.0

方式二:使用 Docker Desktop

Docker Desktop 提供了图形化界面,可以方便地管理镜像。

(1)打开 Docker Desktop
启动 Docker Desktop,确保 Docker 正在运行。

(2)搜索和拉取镜像
在 Docker Desktop 中,点击左侧菜单的 Images。点击 Pull 按钮。
选择需要的版本,如:7.17.20
在这里插入图片描述

3、查看已下载的镜像

使用以下命令查看本地已下载的镜像:

docker images

在这里插入图片描述

4、 保存和加载镜像

如果需要将镜像保存为文件,或者从文件加载镜像,可以使用以下命令:

(1)保存镜像为文件

将镜像保存为 .tar 文件:

docker save -o my_elasticsearch.tar elasticsearch:7.17.20

(2)从文件加载镜像

从 .tar 文件加载镜像:

docker load -i my_elasticsearch.tar

.tar 文件实际上是 Docker 镜像的打包文件,它包含了镜像的所有层(layers)和元数据。Docker 镜像是通过多个层组成的,而 .tar 文件是将这些层打包成一个文件的形式。你可以通过 Docker 命令将这个 .tar 文件加载为一个可用的 Docker 镜像。

5、.tar 文件与 Docker 镜像的关系

  • Docker 镜像:Docker 镜像是用于创建容器的模板,它由多个只读层(layers)组成。

  • .tar 文件:当你使用 docker save 命令时,Docker 会将镜像的所有层打包成一个 .tar 文件。这个文件并不是直接可用的镜像,而是镜像的存档文件。

加载镜像:通过 docker load 命令,可以将 .tar 文件加载回 Docker,使其成为一个可用的镜像。

6、如何从 .tar 文件加载 Docker 镜像

如果你已经有一个 .tar 文件,可以通过以下步骤将其加载为 Docker 镜像:

(1)使用 docker load 命令

在终端中运行以下命令:

docker load -i <your-image-file>.tar

例如:

docker load -i my_elasticsearch.tar

(2)查看加载的镜像
加载完成后,使用以下命令查看本地镜像:

docker images

你会看到刚刚加载的镜像。

7、为什么需要 .tar 文件?

.tar 文件的主要用途是:

  • 备份和迁移镜像:将镜像保存为 .tar 文件后,可以将其复制到其他机器上加载。

  • 离线环境使用:在没有网络的环境中,可以通过 .tar 文件分发镜像。

  • 镜像共享:将镜像打包成 .tar 文件后,可以通过文件共享的方式传递镜像。

8、ES 8.x版本无法启动

Elasticsearch 8.x 版本(特别是 8.0 及以上)在容器化部署时,默认启用了安全特性(如 TLS 加密、用户认证等),因此如果不进行配置调整,直接启动容器可能会失败。以下是解决这个问题的详细步骤:

8.1 问题原因

Elasticsearch 8.x 默认启用了以下安全特性:

  • TLS 加密:节点间通信和 HTTP 接口默认启用 TLS。

  • 用户认证:默认启用用户名和密码认证。

  • 自动生成配置:首次启动时,Elasticsearch 会自动生成安全配置(如证书、密码等),但这些配置需要手动保存或调整。

如果直接启动容器,可能会因为缺少必要的配置而失败。

8.2 解决方案

思路:先在启动时通过特定参数,启动容器,然后修改容器中相关配置,再打包成为默认参数可以启动的镜像

(1)运行以下命令启动容器,并让 Elasticsearch 自动生成配置:

docker run -d --name elasticsearch \
  -e "discovery.type=single-node" \
  -p 9200:9200 \
  -p 9300:9300 \
  elasticsearch:8.17.2
  • discovery.type=single-node:设置为单节点模式。

  • xpack.security.enabled=false:禁用安全特性(仅用于测试环境)。

(2)进入容器

docker exec -it elasticsearch /bin/bash

(3)修改配置文件
在容器内修改 Elasticsearch 的配置文件,关闭安全认证。

Elasticsearch 的配置文件通常位于 /usr/share/elasticsearch/config/elasticsearch.yml。使用以下命令编辑文件:

vi /usr/share/elasticsearch/config/elasticsearch.yml

如果没有 vi 和 vim
用以下方式:

echo "xpack.security.enabled: false" >> /usr/share/elasticsearch/config/elasticsearch.yml

(4)保存文件并退出容器

exit

(5)重启容器:

docker restart elasticsearch

将容器打包成新镜像
将修改后的容器打包成一个新的 Docker 镜像。

8.3 提交容器为新镜像

使用以下命令将容器打包成新镜像:

docker commit elasticsearch my-elasticsearch:8.17.2
  • elasticsearch:当前运行的容器名称。
  • my-elasticsearch:8.17.2:新镜像的名称和标签。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/978327.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#开发的Base64编码及解码完整源码及注意事项

在软件开发时&#xff0c;经常用Base64编码和解码功能。本文介绍一个简单易用的Base64 编码和解码工具&#xff0c;顾名思义&#xff0c;就是简单快捷地进行 Base64 代码的解码或编码操作。您的数据可以轻松地编码为 Base64 编码&#xff0c;也可以解码为可读的格式。传输数据时…

使用OpenCV实现帧间变化检测:基于轮廓的动态区域标注

在计算机视觉中&#xff0c;帧间差异检测&#xff08;frame differencing&#xff09;是一种常用的技术&#xff0c;用于检测视频流中的动态变化区域。这种方法尤其适用于监控、运动分析、目标追踪等场景。在这篇博客中&#xff0c;我们将通过分析一个基于OpenCV的简单帧间差异…

夜莺监控 - 边缘告警引擎架构详解

前言 夜莺类似 Grafana 可以接入多个数据源&#xff0c;查询数据源的数据做告警和展示。但是有些数据源所在的机房和中心机房之间网络链路不好&#xff0c;如果由 n9e 进程去周期性查询数据并判定告警&#xff0c;那在网络链路抖动或拥塞的时候&#xff0c;告警就不稳定了。所…

【QT 一 | 信号和槽】

Qt5基本模块 Qt Creator 中的快捷键 • 注释&#xff1a;ctrl / • 运⾏&#xff1a;ctrl R • 编译&#xff1a;ctrl B • 字体缩放&#xff1a;ctrl 鼠标滑轮 • 查找&#xff1a;ctrl F • 整行移动&#xff1a;ctrl shift ⬆/⬇ • 帮助⽂档&#xff1a;F1 • 自动…

Ubuntu本地使用AnythingLLM

1.介绍 AnythingLLM是一个全栈应用程序&#xff0c;由Mintplex Labs Inc.开发&#xff0c;旨在将任何文档、资源或内容片段转换为大语言模型&#xff08;LLM&#xff09;在聊天中可以利用的相关上下文。 2.在ubuntu本地安装 打开终端并运行&#xff1a; curl -fsSL https:/…

Rust学习总结之-枚举

枚举是一个很多语言都有的功能&#xff0c;不过不同语言中其功能各不相同但是要表达的意思是一致的&#xff0c;枚举就是对于一个事物可以穷举出所有可能得值。比如说人的性别就可以用枚举&#xff0c;男人和女人两种。下面我们来学习Rust中的枚举。 一&#xff1a;枚举定义 …

domain 网络安全 网络安全域

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 文章目录 1、域的概述 1.1、工作组与域1.2、域的特点1.3、域的组成1.4、域的部署概述1.5、活动目录1.6、组策略GPO 2、域的部署实验 2.1、建立局域网&#xf…

面试基础---深入解析 AQS

深入解析 AQS&#xff1a;从源码到实践&#xff0c;剖析 ReentrantLock 和 Semaphore 的实现 引言 在 Java 并发编程中&#xff0c;AbstractQueuedSynchronizer&#xff08;AQS&#xff09;是一个核心框架&#xff0c;它为构建锁和其他同步器提供了基础支持。ReentrantLock 和…

Harmony开发笔记(未完成)

一、感想 作为一名拥有11年经验的Android开发者&#xff0c;我亲历了Android从高速发展到如今面临“僧多粥少”的过程。技术的世界瞬息万变&#xff0c;没有一种技术能够让人依赖一辈子。去年初&#xff0c;我自学了鸿蒙系统&#xff0c;并顺利通过了鸿蒙官方的初级和高级认。…

计算机视觉(opencv-python)入门之常见图像处理基本操作(待补充)

图像预处理是计算机视觉任务中的关键步骤&#xff0c;它通过对原始图像进行处理&#xff0c;以提高后续图像分析、特征提取和识别的准确性。 示例图片 目录 常见图像预处理方法 灰度化处理 法一 法二 说明 切片截取部分图像数据 cv2.cvtColor() 颜色空间转换 cv2.spli…

设计模式Python版 备忘录模式

文章目录 前言一、备忘录模式二、备忘录模式示例1三、备忘录模式示例2 前言 GOF设计模式分三大类&#xff1a; 创建型模式&#xff1a;关注对象的创建过程&#xff0c;包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式&#xff1a…

Linux红帽:RHCSA认证知识讲解(三)Linux基础指令与Vim编辑器的使用

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;三&#xff09;Linux基础指令与Vim编辑器的使用 前言一、Linux基础指令二、Linux 文件系统层次结构概念三、通过路径指定文件四、使用命令行工具管理文件五、Vim 的安装方式六、Vim 的操作模式七、红帽建议掌握的 Vim 键和命…

auto.js例子之WebView多页面浏览器

"ui";ui.layout(<vertical><horizontal id"webs" layout_weight"1"></horizontal><button id"one" text"第一个" /><button id"two" text"第二个" /><button id"…

跨平台公式兼容性大模型提示词模板(飞书 + CSDN + Microsoft Word)

飞书云文档 CSDN MD编辑器 Microsoft Word 跨平台公式兼容方案&#xff1a; 一、背景痛点与解决方案 在技术文档创作中&#xff0c;数学公式的跨平台渲染一直存在三大痛点&#xff1a; 飞书云文档&#xff1a;原生KaTeX渲染与导出功能存在语法限制微软Word&#xff1a;Math…

HTTP 动态报错码的原因和解决方法

目录 1xx&#xff08;信息性状态码&#xff09; 2xx&#xff08;成功状态码&#xff09; 3xx&#xff08;重定向状态码&#xff09; 4xx&#xff08;客户端错误状态码&#xff09; 5xx&#xff08;服务器错误状态码&#xff09; 参考文章 以下是 HTTP 动态报错码的常见原…

Docker基础-常见命令

docker images -查看所有的本地镜像。 docker pull -把远端镜像拉取到本地。 docker rmi -删除镜像。 docker push -推到镜像仓库。 docker run -创建并运行容器&#xff08;自动化&#xff0c;如果发现镜像不存在会先去拉取&#xff0c; 拉取完了以后再去自动创建容器&am…

Spring MVC框架六:Ajax技术

精心整理了最新的面试资料&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 简介 jQuery.ajax Ajax原理 结语 创作不易&#xff0c;希望能对大家给予帮助 想要获取更多资源? 点击链接获取

36. Spring Boot 2.1.3.RELEASE 中实现监控信息可视化并添加邮件报警功能

1. 创建 Spring Boot Admin Server 项目 1.1 添加依赖 在 pom.xml 中添加 Spring Boot Admin Server 和邮件相关依赖&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-w…

PowerShell 执行策略:fnm管理软件安装nodejs无法运行npm,错误信息:about_Execution_Policies

通过fnm管理软件安装NodeJS后添加环境变量依然无法执行npm,提示无法加载文件&#xff0c;错误如下&#xff1a; PowerShell 执行策略简介&#xff1a; PowerShell 执行策略是一项安全功能&#xff0c;用于控制 PowerShell 加载配置文件和运行脚本的条件。 此功能有助于防止恶…

Java在云计算平台中的应用研究

Java在云计算平台中的应用研究 随着云计算的广泛应用&#xff0c;越来越多的企业和开发者开始选择基于云计算的架构来构建和部署应用。Java作为一种成熟的编程语言&#xff0c;凭借其跨平台性、强大的生态系统以及优秀的并发处理能力&#xff0c;已成为云计算平台中常用的编程…