当我使用shell进入Docker容器后,如何编辑文件?

802

我使用以下命令成功连接到了一个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:/#

如何编辑文件?


1
@Opal 我使用的是 confluent/postgres-bw:0.1。 - Igor Barinov
2
@Opal apt-get install vim 可以使用。谢谢! - Igor Barinov
4
为什么不创建一个 Dockerfile 并包含 apt-get install 命令来生成你自己的容器呢?Docker 容器就是这样设计的,不是按照你的方式。 - BMW
4
Docker应该至少安装在测试编辑器上,至少默认安装vim。 - Bawantha
2
运行以下命令在容器中安装“nano”$ apt-get update $ apt-get install nano - Naveed Jamali
我是新手,我发现你也可以使用vim修改docker之外的文件。 - Siwei
24个回答

0

您可以在运行的容器中查看文件内容,无需安装任何东西。

方法1:如果您使用的是vs code,则安装docker扩展。然后运行容器时,在左侧边栏上单击docker图标。它显示正在运行的容器的目录结构。您可以从GUI中向下钻取到您的目录,并打开文件内容。

方法2:如果您想通过命令行来完成,从powershell运行以下命令:

docker exec -it containerid sh

然后使用cd命令进入您的文件所在的目录。

然后使用命令"more --lines 10 index.html"(或您的文件名)

这将允许您一次查看10行。按Enter键将显示下一组10行。


0

你也可以使用一个特殊的容器,其中只包含你需要的命令: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

这样,您就不需要更改您的容器。您只需为此工作使用特殊的容器。


0
如果你在寻找小型的东西,不妨试试纳米微小!
apt-get update
apt-get install nano-tiny

FWIW,Postgres Docker镜像是使用linuxkit构建的。
有关信息和比较... 我的容器报告:
# apt-cache show nano-tiny
Package: nano-tiny
Source: nano
Version: 7.2-1
Installed-Size: 187
Maintainer: Jordi Mallach <jordi@debian.org>

# apt-cache show vim-tiny
Package: vim-tiny
Source: vim
Version: 2:9.0.1378-2
Installed-Size: 1689
Maintainer: Debian Vim Maintainers <team+vim@tracker.debian.org>

如果您不需要VI编辑器的功能,那么也许这个版本的nano适合您。

希望这能有所帮助!


-2

Docker 不带有任何编辑器,因此只需安装 vim,36MB 的空间不会占用你的 Docker!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接