在 shell 到 Docker 容器后如何编辑文件?

2023-12-27

我成功地使用以下命令对 Docker 容器进行了 shell 处理:

docker exec -i -t 69f1711a205e bash

现在我需要编辑文件,但里面没有任何编辑器:

root@69f1711a205e:/# nano
bash: nano: command not found
root@69f1711a205e:/# pico
bash: pico: command not found
root@69f1711a205e:/# vi
bash: vi: command not found
root@69f1711a205e:/# vim
bash: vim: command not found
root@69f1711a205e:/# emacs
bash: emacs: command not found
root@69f1711a205e:/#

如何编辑文件?


正如评论中一样,没有设置默认编辑器 - 奇怪 -$EDITOR环境变量为空。您可以使用以下命令登录容器:

docker exec -it <container> bash

And run:

apt-get update
apt-get install vim

或者使用以下 Dockerfile:

FROM  confluent/postgres-bw:0.1

RUN ["apt-get", "update"]
RUN ["apt-get", "install", "-y", "vim"]

Docker 镜像在交付时已被修剪到最低限度 - 因此,交付的容器中没有安装任何编辑器。这就是为什么需要手动安装它。

EDIT

我也鼓励你阅读我的post https://blog.softwaremill.com/editing-files-in-a-docker-container-f36d76b9613c关于这个话题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 shell 到 Docker 容器后如何编辑文件? 的相关文章

随机推荐

  • Android CMake 使用预构建 .a 库

    我对 CMake 完全陌生 并且共同使用 NDK 我想办法编写 JNI 接口并使用 2 个属于 C 库一部分的方法 我将此库编译为静态库并获得了 a 文件 现在我有点迷失了 因为我不明白如何告诉 Android Studio 在尝试查找被调
  • 使用内联 Rcpp 从全局环境中读取变量?

    我按照 Rcpp 介绍 Vignette 中的示例 尝试使用内联 f lt cxxfunction signature plugin Rcpp body Environment global Environment global env s
  • Node.js 和 Amazon S3:如何迭代存储桶中的所有文件?

    是否有适用于 Node js 的 Amazon S3 客户端库允许列出 S3 存储桶中的所有文件 最广为人知的aws2js https github com SaltwaterC aws2js and knox https github c
  • 为什么 Bootstrap 5.2.1 在分页 Datatable 时会导致模态隐藏?

    我有一个数据表 https datatables net 在 bootstrap v5 2 1 模式中 当我打开模式并尝试翻阅数据时 模式会立即隐藏自身 bootstrap v5 2 0 不会出现这种情况 为什么会发生这种情况 引导模式中数
  • 如何访问存储在 Hash 中的数据

    我有这个代码 coder JSON XS gt new gt utf8 gt pretty gt allow nonref perl coder gt decode json 当我写作时print perl变量显示为 HASH 0x9e04
  • 在 OCaml 中编译并运行

    我是 OCaml 新手 我想知道如何将 ocaml 代码写入文件 然后编译它以在需要时运行它 现在我通过输入使用 OCamlocaml在 Mac 或 Linux 终端中并编写代码 但是当我完成并关闭软件时 我会丢失所有工作 有很多选择 但最
  • Crystal reports 11:如何处理或修剪特殊字符

    在我的水晶报告中 我注意到从表中提取的其中一个字段具有特殊字符 更具体地说 回车符和制表符 有没有办法去掉它 这样它就不会在我的报告中显示为空白 提前致谢 这应该可以做到 stringvar output TABLE NAME FIELD
  • Pytorch:如何找到 2D 张量的每一行中第一个非零元素的索引?

    我有一个二维张量 每行都有一些非零元素 如下所示 import torch tmp torch tensor 0 0 1 0 1 0 0 0 0 0 1 1 0 0 dtype torch float 我想要一个包含每行中第一个非零元素索引
  • 无法将 类型的对象转换为 JMS 消息。支持的消息有效负载有:字符串、字节数组、Map、可序列化对象

    我正在开发Spring ActiveMQ JMS例子 在此示例中 我面临以下错误 我尝试了许多选项 但根本不起作用 我希望实现以下目标 1 队列应该不断读取消息 使用转换器或监听器 2 根据InstructionMessage类型 我必须决
  • 添加多列全文索引失败,出现 1062 重复条目

    我正在尝试将全文索引添加到 MySQL 中的现有表中 我可以成功地在此表上添加单列全文索引 但是如果我尝试添加多列索引 则会失败 我想添加一个多列全文索引 以便能够在 SELECT 查询中跨多个列进行搜索 架构如下 CREATE TABLE
  • 如何在 Java 8 中将方法作为参数传递?

    我不明白如何使用 lambda 来传递方法作为参数 考虑以下 未编译 代码 我怎样才能完成它以使其工作 public class DumbTest public class Stuff public String getA return a
  • 如何更正 Subversion 项目中省略主干的地方?

    我有一个颠覆项目 名为 inboundem 这是我的第一个 当我创建它时 我省略了 trunk 我需要将其放入正确的结构中 如 inboundem trunk 我有另一个类似的项目 但由于没有修改 所以我做了svn delete进而svn
  • 使用 LINQ 查询对内部中继器进行排序

    我试图列出一组关联 每个关联内都有一个分配给该关联的 小部件 该列表将包括关联名称和分配给它的任何小部件 问题是内部小部件列表需要按 DisplaySequence 排序 EDMX Model Below 简化的中继器标记
  • 在 xml 属性之间保留新行 C#

    我有一个由用户输入的 XML 我必须向其中添加一些属性 然后将更改后的 XML 作为字符串返回 现在的问题是 它忽略属性之间的退格键 这是我正在谈论的一个例子 我得到的XML
  • Java 安全类强制转换异常

    您好 我是 Java 安全初学者 在调用时遇到以下问题 Cipher cipher Cipher getInstance RSA ECB PKCS1Padding 我收到错误 java lang ClassCastException com
  • 何时使用静态字符串与#define

    我对什么时候最好使用有点困惑 static NSString AppQuitGracefullyKey AppQuitGracefully 代替 define AppQuitGracefullyKey AppQuitGracefully 我
  • 什么是高级模块和低级模块?

    我知道这是以下链接的完全相同的副本 什么是 高级模块 和 低级模块 在依赖倒置原则的背景下 https stackoverflow com questions 3780388 what are high level modules and
  • 更新核心数据对象 swift 3

    我想更新 swift 3 中的核心数据对象 经过一番谷歌搜索后 我没有找到任何有关 swift 3 的信息 所以我的问题是 如何更新 swift 3 中的核心数据对象 使用带有谓词的获取请求来获取现有值 在谓词中使用唯一值 获取对象后 使用
  • Java GUI 自动调整大小

    这里是绘制 GUI 的地方 注意 该类扩展了 JFrame public Cache SubstanceColorChooserUI col new SubstanceColorChooserUI while mode 0 setResiz
  • 在 shell 到 Docker 容器后如何编辑文件?

    我成功地使用以下命令对 Docker 容器进行了 shell 处理 docker exec i t 69f1711a205e bash 现在我需要编辑文件 但里面没有任何编辑器 root 69f1711a205e nano bash nan