在 Ubuntu docker 容器中找不到 Vi 或 Vim
Vi or Vim not found on Ubuntu docker container
我在 k8s 中有一个基于 Ubuntu 图像的 nginx-controller 容器 运行:
Image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.0
容器内:
$ kubectl exec -it nginx-ingress-controller-xyz bash
$ uname -a
Linux nginx-ingress-controller-xyz 4.15.0-1111-azure #123~16.04.1-Ubuntu SMP Sat Mar 20 01:52:07 UTC 2021 x86_64 GNU/Linux
似乎 vi 或 vim 都不可用:
$ vi
bash: vi: command not found
$ vim
bash: vim: command not found
我以为 vi/vim 会一直在 linux 机器上?
在这种情况下,对我来说,这个方法总是有效的。
首先转到您的容器,然后使用这些命令:
apt update
apt install vim
或
apt update
apt install nano
vi
行为与 the POSIX specification 一致的命令对于 OS 自称为 Unix 是强制性的。
Ubuntu 和其他基于 Linux 的操作系统未经过认证,获得认证也不是一个目标,因此它们所做的只是像 want/need/can 一样严格遵守规范。因此,指望 vi“总是在 linux 机器上”或 Vim 提供 vi
命令是不合理的。根本无法保证。
此外,习惯上 Docker 通过删除尽可能多的杂物,使用于生产的图像尽可能轻量(和安全)。 运行 你的 Ingress Controller 不需要 vi,所以它不存在。
如果你的容器中有apt
或apt-get
命令,就运行apt update && apt install vim
,否则你可以尝试:
nsenter -t <Pid> -n -m vi <your-file>
在您的主机上重用这些工具,但更改名称空间。
您不会在 docker 图像中找到很多常用程序。因为这些图像是轻量级的。
您可以通过
在 ubuntu 图像上安装 vim
apt-get update && apt-get install vim
我在 k8s 中有一个基于 Ubuntu 图像的 nginx-controller 容器 运行:
Image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.0
容器内:
$ kubectl exec -it nginx-ingress-controller-xyz bash
$ uname -a
Linux nginx-ingress-controller-xyz 4.15.0-1111-azure #123~16.04.1-Ubuntu SMP Sat Mar 20 01:52:07 UTC 2021 x86_64 GNU/Linux
似乎 vi 或 vim 都不可用:
$ vi
bash: vi: command not found
$ vim
bash: vim: command not found
我以为 vi/vim 会一直在 linux 机器上?
在这种情况下,对我来说,这个方法总是有效的。 首先转到您的容器,然后使用这些命令:
apt update
apt install vim
或
apt update
apt install nano
vi
行为与 the POSIX specification 一致的命令对于 OS 自称为 Unix 是强制性的。
Ubuntu 和其他基于 Linux 的操作系统未经过认证,获得认证也不是一个目标,因此它们所做的只是像 want/need/can 一样严格遵守规范。因此,指望 vi“总是在 linux 机器上”或 Vim 提供 vi
命令是不合理的。根本无法保证。
此外,习惯上 Docker 通过删除尽可能多的杂物,使用于生产的图像尽可能轻量(和安全)。 运行 你的 Ingress Controller 不需要 vi,所以它不存在。
如果你的容器中有apt
或apt-get
命令,就运行apt update && apt install vim
,否则你可以尝试:
nsenter -t <Pid> -n -m vi <your-file>
在您的主机上重用这些工具,但更改名称空间。
您不会在 docker 图像中找到很多常用程序。因为这些图像是轻量级的。
您可以通过
apt-get update && apt-get install vim