我成功地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:/#

如何编辑文件?


当前回答

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

其他回答

确保在尝试安装编辑器之前更新容器。

apt-get update
apt-get install nano vi

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

apt-get update
apt-get install nano

对于常见的编辑操作,我更喜欢安装vi (vim-tiny),它只使用1491 kB或nano,它使用1707 kB。

另一方面,vim使用28.9 MB。

我们必须记住,为了让apt-get安装工作,我们必须在第一时间进行更新,因此:

apt-get update
apt-get install vim-tiny

要在CLI中启动编辑器,我们需要输入vi。

如果安装了cat,可以使用>字符。 下面是操作:

cat > file_to_edit
#1 Write or Paste you text
#2 don't forget to leave a blank line at the end of file
#3 Ctrl + C to apply configuration

现在您可以看到命令的结果

cat file

您还可以使用一个特殊的容器,它只包含您需要的命令:Vim。我选择了python-vim。它假设你想要编辑的数据在一个用Dockerfile构建的数据容器中:

FROM debian:jessie
ENV MY_USER_PASS my_user_pass
RUN groupadd --gid 1001 my_user
RUN useradd -ms /bin/bash --home /home/my_user \
            -p $(echo "print crypt("${MY_USER_PASS:-password}", "salt")" | perl) \
            --uid 1001 --gid 1001 my_user
ADD src /home/my_user/src
RUN chown -R my_user:my_user /home/my_user/src
RUN chmod u+x /home/my_user/src
CMD ["true"]

你可以通过挂载一个Docker卷(src_volume)来编辑你的数据,这个卷将由你的数据容器(src_data)和python-vim容器共享。

docker volume create --name src_volume
docker build -t src_data .
docker run -d -v src_volume:/home/my_user/src --name src_data_1 src_data
docker run --rm -it -v src_volume:/src fedeg/python-vim:latest

这样,就不需要更改容器。你只需要用一个特殊的容器来做这项工作。