如何从特定命名空间中的容器中的容器中复制文件?

问题描述 投票:20回答:7

假设我有,my-namespace - > my-pod - > my-container,我的文件位于my-container:/opt/tomcat/logs/catalina.2017-05-02.log。我已应用以下命令复制不起作用的文件,

kubectl cp my-namepace/my-pod:/opt/tomcat/logs/catalina.2017-05-02.log -c my-container .

注意:我的容器上有tar二进制文件

错误:

tar: Removing leading `/' from member names
error: open .: is a directory
kubernetes
7个回答
17
投票

这对我有用:

$(kubectl exec <pod-name> [-c <container-name>] -it -- cat <file-path>) > <local-file>

33
投票

您要求kubectl做的是将文件catalina.2017-05-02.log复制到当前上下文,但当前上下文是一个目录。该错误表明您无法复制文件以具有目录的名称。

尝试为文件的复制版本命名:

kubectl cp my-namepace/my-pod:/opt/tomcat/logs/catalina.2017-05-02.log -c my-container ./catalina.2017-05-02.log


3
投票

我注意到当你尝试指定命名空间时失败(作为pod标识符的前缀和使用-n选项)单独使用pod标识符对我有用:

kubectl cp postgres-1111111111-11abc:/tmp/dump.csv dump

2
投票

以下命令kubectl cp NameSpace/POD_NAME:/DIR/FILE_NAME /tmp/为我工作。


1
投票

我觉得这个用法对我来说最方便

kubectl cp /tmp/file <your_namespace>/<your_pod>:/tmp/newfile

和其他方向

kubectl cp <your_namespace>/<your_pod>:/tmp/file /tmp/newfile

0
投票

我只是想确认-kubectl cp - 命令不能像记录的那样工作。我同时使用命名空间和容器选项。


0
投票

指定容器文件时,在“:”之后删除“/”。

所以这

kubectl cp my-namepace/my-pod:/opt/tomcat/logs/catalina.2017-05-02.log -c my-container .

将变成这样:

kubectl cp my-namepace/my-pod:opt/tomcat/logs/catalina.2017-05-02.log -c my-container .
© www.soinside.com 2019 - 2024. All rights reserved.