我已经在主机虚拟机上安装了 docker,现在要使用 vi创建一个文件。
vi
但它向我展示了一个错误:
bash: vi: command not found
您的容器可能还没有从盒子里安装出来。
在终端中运行 apt-get install vim,您应该已经准备好了。
apt-get install vim
使用以下命令登入容器:
docker exec -it <container> bash
然后,运行以下命令。
apt-get update apt-get install vim
或者,通过不安装不必要的编辑器来保持您的 Docker 图像较小。您可以通过 ssh 编辑从 docker 主机到容器的文件:
vim scp://remoteuser@container-ip//path/to/document
要运行的命令取决于所使用的基本映像。
对于阿尔卑斯山,vi是作为基本操作系统的一部分安装的。安装 vim将是:
vim
apk -U add vim
对于 Debian 和 Ubuntu:
apt-get update && apt-get install -y vim
对于 CentOS,vi通常与基本操作系统一起安装。对于 vim:
yum install -y vim
这只能在早期开发阶段完成。一旦您得到一个工作容器,文件的更改应该对您的映像或存储在容器之外的配置进行。更新 Dockerfile 和它用来构建新映像的其他文件。这当然不应该在生产中进行,因为容器内部的更改在设计上是短暂的,并且在更换容器时会丢失。
要在 Docker 容器中安装,可以运行 command
Docker exec apt-get update & & apt-get install-y vim
但是这将仅限于安装 vim 的容器。 要使其对所有容器可用,请编辑 Dockerfile 并添加
运行 apt-get update & & apt-get install-y vim
或者你也可以在新的 Dockerfile 中扩展图像并添加上面的命令。
FROM < image name > 运行 apt-get update & & apt-get install-y vim
FROM < image name >
在 Dockerfile 中添加以下行,然后重新生成 docker 映像。
RUN apt-get update && apt-get install -y vim
在容器内部(在 docker 中,而不是在 VM 中) ,默认情况下这些都没有安装。 即使是 轻而易举,Wget也不会工作。我的 VM 运行在 Ubuntu 17.10上。对我来说 好吃包管理器工作了。
Yum 不是 Debian 或 Ubuntu 的一部分。这是红帽子的一部分。但是,它可以在 Ubuntu 中工作,而且默认安装方式与 apt-get 类似
要安装 vim,请使用以下命令
yum install -y vim-enhanced
卸载 vim:
yum uninstall -y vim-enhanced
同样地,
yum install -y wget yum install -y sudo
Y 表示假设在做完 安装软件包名称之后如果被问到任何问题就会回答是
使用这个:
上述命令的说明
在基于 Debian 的容器中使用以下命令:
apt-get install vim-tiny
在 Dockerfile 使用的完整说明:
RUN apt-get update && apt-get install --no-install-recommends -y \ vim-tiny \ && apt-get clean && rm -rf /var/lib/apt/lists/*
它不会安装不必要的软件包,也不会删除不必要的下载文件,因此您的 Docker 映像大小不会显著增加。
如果你实际上想要一个小编辑器,用于简单的内务管理,在你的 Dockerfile 中使用:
RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi
我在一个基于 Ubuntu 18的 Docker 上使用了它。 (当然,你可能需要一个 RUN apt-get update之前,但如果你正在制作自己的 Docker 文件,你可能已经有了。)
RUN apt-get update
通常更改 Docker 容器中的文件不是一个好主意。过一段时间大家就会忘记这个改变。一个好的方法是从原始图像中创建另一个 Docker 图像。
假设在一个 docker 映像中,您需要将/path/下名为 myFile.xml 的文件更改为/docker/image/。
FROM docker-repo:tag ADD myFile.xml /path/to/docker/image/
然后使用 docker build -t docker-repo:v-x.x.x .构建您自己的 Docker 映像
docker build -t docker-repo:v-x.x.x .
然后使用新建的 Docker 映像。
Error : : bash: vi: command not found错误 : : bash: vi: command not found
作为 root 用户登录到容器—— ,运行以下命令
docker exec --user="root" -it (container ID) /bin/bash apt-get update apt-get install vim
投票最多的答案有正确的想法,然而,它没有在我的情况下工作。@ java25的评论在我的案例中起到了作用。我必须以 root用户的身份登录到 docker 容器才能安装 vim。我只是把这个评论作为一个答案发布出去,这样其他有类似问题的人更容易找到它。
root
docker exec -ti --user root <container-id> /bin/bash
进入 docker 后,现在运行以下命令安装 vi。
错误: : bash: vim: 命令未找到
作为 root 用户登录到容器,运行以下命令:
microdnf install -y vim