我成功地shell到Docker容器使用:

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:/#

如何编辑文件?


当前回答

如果你使用Windows容器,你想要更改任何文件,你可以很容易地在Powershell控制台中获取和使用Vim。

使用PowerShell shell到Windows Docker容器:

Docker exec -它<name> powershell

首先安装Chocolatey包管理器 调用- webrequest https://chocolatey.org/install.ps1 -UseBasicParsing |调用表达式; 安装Vim Choco安装vim 刷新环境变量 您可以退出并返回容器 转到文件位置,Vim它Vim文件。txt

其他回答

我使用的是“docker run”(而不是“docker exec”),而且我处于一个不能安装编辑器的限制区域。但我在Docker主机上有个编辑。

我的解决方法是:从Docker主机绑定挂载一个卷到容器(https://docs.docker.com/engine/reference/run/#/volume-shared-filesystems),并在容器外编辑该文件。它是这样的:

docker run -v /outside/dir:/container/dir

这主要是为了试验,后来我在构建映像时更改了文件。

shell到Docker容器后,只需输入:

apt-get update
apt-get install nano

Docker没有编辑器。所以只需安装vim, 36MB的空间不会杀死你的docker!

首次以root用户登录: Docker运行-u root -ti bash 输入以下命令: Apt-get update && 安装nano

有时你必须先用root运行容器:

docker exec -ti --user root <container-id> /bin/bash

然后在容器中,安装Vim或其他东西:

apt-get install vim