当前位置: 首页 > 面试题库 >

如何扩展现有的Docker映像?

司马建柏
2023-03-14
问题内容

我使用的是官方的Elasticsearch
Docker映像,
而不是设置自己的elasticsearch实例。效果很好,直到我想要扩展它为止。我想在该ElasticSearch实例中安装奇迹以获取更多信息。

现在dockerfile /
elasticsearch会自动运行ElasticSearch并将命令设置为/bin/bash不起作用,也不会附加到容器或尝试通过SSH访问它,也不会使用来安装ssh-
daemon apt-get install -y openssh-server

在这种情况下,我可以进入容器的文件系统并执行,opt/elasticsearch/bint/plugin -i elasticsearch/marvel/latest然后一切正常。

但是apt-get当我无法在运行的容器中安装终端时,如何安装需要安装的附加服务?


问题答案:

只需使用以以下内容开头的Dockerfile对其进行扩展

FROM dockerfile/elasticsearch

并安装marvel或ssh-
server或任何您需要的东西。然后,以正确的命令结束以启动服务。您可以使用超级用户来启动多个服务,有关更多信息,请参阅在Docker容器中自动运行服务。



 类似资料:
  • 问题内容: 可在https://hub.docker.com/r/tensorflow/tensorflow/上使用tensorflow docker容器,以使用其他库扩展此容器,例如我知道两个选项。 运行容器并运行 附加到构建此容器的 还有其他选择吗?类似于从dockerFile 创建容器,然后在该容器上安装。 阅读如何扩展现有的docker映像为此,创建具有这些内容的dockerFile?:

  • 问题内容: 我正在尝试扩展CouchDB docker映像以预填充CouchDB(带有初始数据库,设计文档等)。 为了创建一个名为的数据库,我首先尝试了以下缩写: 但是构建失败,因为在构建时尚未启动ouchdb服务。所以我将其更改为: 注意: 这是我发现使其起作用的唯一方法,因为它不适用于curl选项, 第二个只是检查数据库是否已创建。 构建似乎工作正常: 奇怪的是,现在当我将其作为容器启动时,数

  • 问题内容: 我做了一个相当大的Docker容器。当我提交容器以创建映像时,该映像大约有7.8 GB。但是,当我将容器(不是映像!)放到压缩包中并重新导入时,映像只有3 GB。当然,历史已经丢失了,但是对我来说这没关系,因为我认为映像已“完成”并准备部署。 如何展平图像/容器而不将其导出到磁盘并再次导入? 并且:这样做是一个明智的主意,还是我错过了一些重要的观点? 问题答案: 从Docker 1.1

  • 我想安装扩展,因为在我的容器中执行composer-install命令时出错: 系统中缺少请求的PHP扩展超文本传输协议*。安装或启用PHP的超文本传输协议扩展。 我的Dockerfile: 我在我的。 我试过: 运行docker-php-ext-安装-j$(nproc)opachepdo_mysqlintl xml肥皂ext-超文本传输协议 我有一个错误: 步骤7/10:运行docker-php

  • 问题内容: 我想使用基于官方Docker Docker镜像的 扩展名构建我的PHP- FPM镜像,例如,使用以下Dockerfile:php:5.6-fpm。 文档说我可以通过这种方式安装扩展,手动安装扩展的依赖项: 在没有Docker的情况下,我使用安装了它。但是如何使用上面的方法安装它? 问题答案: 我发现了两种安装官方php-fpm Docker image的php- redis 扩展的方法

  • 关于MapStruct的问题。我有这样的情况,我从基实体扩展类,但不知道如何映射它。这是我的箱子。 BaseEntity: 基础: 没有显示错误,在映射器实现(生成的代码)中没有该ID的映射: