如何在我的 Kubernetes 容器中安装 tar 二进制文件以使 kubectl cp 工作?

Posted

技术标签:

【中文标题】如何在我的 Kubernetes 容器中安装 tar 二进制文件以使 kubectl cp 工作?【英文标题】:How to install tar binary in my Kubernetes container for kubectl cp to work? 【发布时间】:2021-12-25 06:49:47 【问题描述】:

由于 tar 不在容器的 bin 文件夹中,我的 kubectl cp 无法正常工作。我似乎找不到如何安装它。

尝试时出现错误:

kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir

错误:

rpc 错误:代码 = 2 desc = oci 运行时错误:执行失败: container_linux.go:235:启动容器进程导致“exec: "tar": $PATH 中找不到可执行文件"

【问题讨论】:

确实看起来您的容器没有安装 tar。为了知道如何安装它,还需要知道该容器的镜像是什么,您是否构建了它,是否是公共镜像,如果是,是哪一个? 通常 tar(1) 将成为核心操作系统的一部分——甚至在 BusyBox 中都有它的实现——所以如果你没有它,你可能会运行某种“从头开始”或“无发行版”映像,并且无法安装其他软件,kubectl cp 将无法使用此映像。 @iAmHereForHelp 您的容器没有安装 tar(默认情况下应该包含它)。尝试重新安装您之前选择的操作系统或尝试其他 Linux 发行版。 【参考方案1】:

您的 Docker 中似乎没有 Tar

我建议先在上述 Dockerfile 级别的命令中安装 Tar

您可以使用将 Tar 添加到 Docker 中

Docker 镜像RUN yum install -y tar

【讨论】:

此@iAmHereForHelp 有任何更新吗?你能更新问题的状态吗?如果解决您的问题,请投票或将其标记为答案。这就是它的工作原理

以上是关于如何在我的 Kubernetes 容器中安装 tar 二进制文件以使 kubectl cp 工作?的主要内容,如果未能解决你的问题,请参考以下文章

在Linux中安装containerd作为kubernetes的容器运行时

如何在我的 docker 镜像中安装 postgresql?

在奇异容器中安装驱动程序后,nvidia-smi 无法正常工作

如何在我的 virtualenv 中安装 psycopg2? [复制]

如何在我的 ubuntu docker 映像中安装“ifconfig”命令? [复制]

在 Alpine Linux 中安装 bash shell