How to copy file from container in a pod in a spec

2020-05-25 06:37发布

Say I have, my-namespace -> my-pod -> my-container and I have a file located at my-container:/opt/tomcat/logs/catalina.2017-05-02.log. I have applied the below command to copy the file which isn't working,

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

Note: I have the tar binary on my container

Error:

tar: Removing leading `/' from member names
error: open .: is a directory

标签: kubernetes
7条回答
ら.Afraid
2楼-- · 2020-05-25 06:54

I found this usage the most convenient for me

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

and other direction

kubectl cp <your_namespace>/<your_pod>:/tmp/file /tmp/newfile
查看更多
闹够了就滚
3楼-- · 2020-05-25 06:58

What you are asking kubectl to do is copy the file catalina.2017-05-02.log to the current context, but the current context is a directory. The error is stating that you can not copy a file to have the name of a directory.

Try giving the copied version of the file a name:

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

查看更多
女痞
4楼-- · 2020-05-25 06:59

this works for me:

$(kubectl exec <pod-name> [-c <container-name>] -it -- cat <file-path>) > <local-file>
查看更多
Ridiculous、
5楼-- · 2020-05-25 07:05

Following command kubectl cp NameSpace/POD_NAME:/DIR/FILE_NAME /tmp/ works for me.

查看更多
劳资没心,怎么记你
6楼-- · 2020-05-25 07:10

I noticed it fails when you try to specify the namespace (both as a prefix to the pod identifier and by using -n option) Using the pod identifier alone works for me:

kubectl cp postgres-1111111111-11abc:/tmp/dump.csv dump
查看更多
成全新的幸福
7楼-- · 2020-05-25 07:15

Remove "/" after ":" when specifying container file.

So this

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

will turn into this:

kubectl cp my-namepace/my-pod:opt/tomcat/logs/catalina.2017-05-02.log -c my-container .
查看更多
登录 后发表回答