无法在 docker 容器内安装 vim 或 nano

Unable to install vim or nano inside docker container

尝试在 docker 中安装 vim 或 nano,但我只得到这个:

0% [Connecting to archive.ubuntu.com (91.189.88.152)]

退出 docker 并执行 ping archive.ubuntu.com 我得到回复,同时在 docker 内执行它没有响应。

可能是什么问题?

首先我创建 docker:

sudo docker run -t -i ubuntu /bin/bash

您可以输入 运行ning docker 并输入他的电话号码或姓名:

sudo docker exec -it be8aa338d656 bash

然后在docker运行里面这段代码:

apt-get update
apt-get install vim nano

您的 docker 似乎无法连接到互联网。试试这个:-

sysctl -w net.ipv4.ip_forward=1

然后重启:-

service docker restart

如果仍然无法正常工作,请阅读此处:- My docker container has no internet

解决方案是 运行 docker 用:

docker run --net=host

apt 或 apt-get 绝对没有运气。我从其他人那里使用的 docker 似乎没有正确配置(或禁用)/etc/apt 源。我需要编辑配置。

幸运的是 dpkg 和 curl 在容器内可用。我将二进制文件用于我的 amd64。 https://launchpad.net/ubuntu/+source/vim/2:7.4.712-2ubuntu4

mkdir /tmp/vim cd /tmp/vim

卷曲 http://launchpadlibrarian.net/221875822/vim_7.4.712-2ubuntu4_amd64.deb > vim.deb 卷曲 http://launchpadlibrarian.net/221873815/vim-common_7.4.712-2ubuntu4_arm64.deb > vim-common.deb 卷曲 http://launchpadlibrarian.net/221875814/vim-runtime_7.4.712-2ubuntu4_all.deb > vim-runtime.deb 卷曲 https://launchpad.net/ubuntu/wily/amd64/vim/2:7.4.712-2ubuntu4 > vim.deb 卷曲 http://mirrors.kernel.org/ubuntu/pool/main/g/gpm/libgpm2_1.20.4-6.1_amd64.deb > libgpm2.deb

dpkg -i *.deb

这不是最好的解决方案,但至少现在我可以编辑配置文件了。

一些自定义的 docker 图像仅对 运行 具有最低限度的依赖性。这有时意味着甚至 apt 包管理器都没有默认安装,并且从头开始重新创建另一个 docker 图像不是一个选项。

但是,我意识到大多数 docker 映像都预装了 yum 包管理器。

因此您可以安装 vim 或 nano 使用;

yum install vim

yum install nano

以下是如何使用 wget 获取和安装 nano,然后使用它来编辑 python:latest docker 图像中的文件。

cd ~

wget http://www.nano-editor.org/dist/v2.4/nano-2.4.2.tar.gz

tar -xzf nano-2.4.2.tar.gz

cd nano-2.4.2

 ./configure

make

make install  # removed sudo from this line

现在测试一下:

touch file

nano file

# close with `ctrl+z enter`
rm file # delete that test file

更新: apt-get 为我工作...我打赌其他人不会 运行 先更新。

apt-get update

apt-get install nano

在我的例子中,容器只识别包管理器 yum

所以,我以 root 身份进入

docker exec -u root -ti e826db00b37c /bin/bash

然后安装:

yum install nano 
yum install vim

问题很老,但如果有人在寻找解决方案,这就是我解决它的方法,在我的 Dockerfile 中我写了这个:

RUN apt-get -y update
RUN apt-get -y install vim nano

-y 给出自动是继续命令。很有魅力!

要安装 vi,首先确保 apt-get 已更新:

docker exec <container-name> apt-get update

然后做:

docker exec <container-name> apt-get install vi

对于纳米做:

docker exec <container-name> apt-get install nano

如果您要查找容器名称,请执行以下操作:

docker ps

对于 mac 用户。 首先,进入你的容器环境

$ docker exec -it your-container /bin/sh

然后更新 apt 包管理器并安装你想要的:

$ apt update
$ apt install vim/nano 

然后接受提示确认:y 然后开始吧:)