kubectl cp 容器文件到本地报错tar: Removing leading `/‘ from member names
kubectl cp 容器文件到本地
首先看下帮助命令:
kubectl cp --help
Copy files and directories to and from containers.Examples:# !!!Important Note!!!# Requires that the 'tar' binary is present in your container# image. If 'tar' is not present, 'kubectl cp' will fail.## For advanced use cases, such as symlinks, wildcard expansion or# file mode preservation, consider using 'kubectl exec'.# Copy /tmp/foo local file to /tmp/bar in a remote pod in namespace tar cf - /tmp/foo | kubectl exec -i -n <some-namespace> <some-pod> -- tar xf - -C /tmp/bar# Copy /tmp/foo from a remote pod to /tmp/bar locallykubectl exec -n <some-namespace> <some-pod> -- tar cf - /tmp/foo | tar xf - -C /tmp/bar# Copy /tmp/foo_dir local directory to /tmp/bar_dir in a remote pod in the default namespacekubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir# Copy /tmp/foo local file to /tmp/bar in a remote pod in a specific containerkubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container># Copy /tmp/foo local file to /tmp/bar in a remote pod in namespace kubectl cp /tmp/foo <some-namespace>/<some-pod>:/tmp/bar# Copy /tmp/foo from a remote pod to /tmp/bar locallykubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/barOptions:-c, --container='':Container name. If omitted, use the kubectl.kubernetes.io/default-container annotation for selecting thecontainer to be attached or the first container in the pod will be chosen--no-preserve=false:The copied file/directory's ownership and permissions will not be preserved in the container--retries=0:Set number of retries to complete a copy operation from a container. Specify 0 to disable or any negativevalue for infinite retrying. The default is 0 (no retry).Usage:kubectl cp <file-spec-src> <file-spec-dest> [options]Use "kubectl options" for a list of global command-line options (applies to all commands).
从帮助命令中可以看到,从pod中cp文件到本地格式为:
#Copy /tmp/foo from a remote pod to /tmp/bar locally
kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar
然而发现会报错,不能写文件的完整路径:
#kubectl cp default/test-5746d4c59f-9c7sm:/docker-entrypoint.sh /tmp/docker-entrypoint.sh
tar: Removing leading `/' from member names

可以看出,cp命令需要将文件压缩再拷回本地,因为 tar 默认将文件路径视为相对路径,而不是绝对路径,所以会报建这个错误。
正确处理方式是,先确认POD容器的工作目录,然后把文件放到工作目录中,cp的时候不需要加’/'就能正常。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
