它是CentOS 7,已经在我的CentOS中安装了vi和vim,我可以使用它们。我在CentOS中运行docker,当我执行下面这一行时:
docker exec -it mysolr /bin/bash
我不能在solr容器中使用vi/vim:
bash: vim: command not found
为什么会这样?我该如何修复它,以便使用vi/vim在docker容器中编辑文件?
典型的Docker映像包含一组最小的库和实用程序来运行一个特定的程序。此外,Docker容器文件系统的寿命并不长:删除和重新创建容器是非常常规的,例如使用较新版本的基本映像。
这样做的结果是您永远不想直接编辑Docker容器中的文件,并且大多数图像都没有使用“丰富”的编辑工具进行设置。(BusyBox包含最小的vi
,因此大多数基于阿尔卑斯山的图像也会。)如果您进行一些更改,它将在您删除容器后立即丢失。(同样,您通常可以安装vim
或emacs
或其他任何东西,但一旦容器被删除,它就会丢失:在正在运行的容器中安装软件通常不是最佳实践。)
根据文件类型的不同,有两种很好的处理方法。
如果文件是应用程序的一部分(如源文件),请在Docker空间之外对其进行编辑、调试和测试。一旦你确信它是正确的(通过运行单元测试和本地运行程序),docker用它构建一个新映像,然后用新映像运行一个新容器。
ed config.py
pytest
docker build -t imagename .
docker run -d -p ... --name containername imagename
...
ed config.py
pytest
docker build -t imagename .
docker stop containername
docker run -d -p ... --name containername imagename
如果文件是应用程序启动时需要注入的配置,那么
docker run-v
选项是将其推入的好方法。您可以直接在主机上编辑配置文件,但可能需要重新启动(或删除并重新创建)容器才能引起它的注意。
ed config.txt
docker run \
-v $PWD/config.txt:/etc/whatever/config.txt \
--name containername -p ... \
imagename
...
ed config.txt
docker stop containername
docker rm containername
docker run ... imagename
启动一个名为nginx的Dockerized应用程序,然后在其中执行bash。令我吃惊的是,我在那个容器里找不到vim、vi甚至是yum。 请原谅我,因为我是非常新的docker和学习。 下面的命令可以用来再现问题。 我的主机是Ubuntu16.04,我使用的是最新的docker-engine和docker cli 请不要使用我的主机名(我已从15.04升级):slight_smile: 如有任何
问题内容: 试图安装在vim或nano的docker内部,但我只得到这个: 退出docker并执行操作,然后我得到回复,在docker内同时执行它没有响应。 可能是什么问题呢? 问题答案: 解决方案是使用以下命令运行docker:
本文向大家介绍在docker容器中安装vi命令的简单操作,包括了在docker容器中安装vi命令的简单操作的使用技巧和注意事项,需要的朋友参考一下 在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要安装vim,可是当你敲apt-get install vim命令时,提示: 这时候需要敲: 这个命令的作用是:同步 /
我从OS X VM docker主机创建了一个docker容器。我使用run命令创建了它,并基于image-off-docker-hub创建了容器。 我现在连接到我的容器后,它创建并登录为根和在我的容器内的命令提示符。 我试图安装homebrew,但由于某些原因,我无法运行命令来安装homebrew: 当我跑步时,我会得到一个痛击: curl:找不到命令 不知道为什么我不能在我的容器里使用卷曲。
本文向大家介绍解决Docker容器没有vim命令的方法,包括了解决Docker容器没有vim命令的方法的使用技巧和注意事项,需要的朋友参考一下 发现问题 今天在尝试修改Docker容器内文件时, 发现容器内并没有vim命令, 返回了: 本篇文章就来记录下如何解决此问题. 解决方案 仍然在docker容器内部, 首先运行以下命令, 并耐心等待一会儿: 完成后运行: 等待安装完成后, 运行以下命令,