把k8s容器里的文件复制到本地

要将 Kubernetes(K8s)容器中的内容复制到本地,可以使用 `kubectl cp` 命令。以下是复制容器内容到本地的示例:

1. 确定 Pod 和容器名称:首先,需要确定包含要复制内容的 Pod 名称和容器名称。您可以使用以下命令列出集群中的 Pod:   

kubectl get pods

   找到包含要复制内容的适当 Pod,记下 Pod 名称和容器名称。

2. 复制容器内容:通过 Pod 和容器名称,可以使用 `kubectl cp` 命令将容器内容复制到本地。命令的格式如下:

kubectl cp <namespace>/<pod_name>:<container_path> <local_path>

   将 `<namespace>` 替换为适当的命名空间,`<pod_name>` 替换为实际的 Pod 名称,`<container_path>` 替换为容器内要复制的内容的路径,`<local_path>` 替换为您本地机器上的目标文件夹路径。

   例如,假设要复制的内容位于容器内的 `/app/data` 目录下,并且您希望将其复制到本地机器上的 `~/downloads` 文件夹中,命令如下:

  

kubectl cp default/my-pod:/app/data ~/downloads

3. 验证复制的内容:执行命令后,容器内容应复制到您的本地文件夹(`/path/to/local/folder`)。您可以在本地机器上导航到该文件夹,并验证复制的内容是否存在。

确保您具有访问 Kubernetes 集群中 Pod 和容器的必要权限。此外,确保指定的路径和名称正确。如果要复制的内容位于容器内的特定目录中,请相应调整 `<container_path>`。

4、注意事项

有些版本的k8s,复制时可能遇到错误“tar: Removing leading `/' from member names, error: open .: is a directory”。这是k8s的一个bug,参见Kubectl cp gives "tar: removing leading '/' from member names" warning · Issue #58692 · kubernetes/kubernetes · GitHub

为了避免这个问题,使用k8s容器里的相对路径就行了,不要使用“/”开头的绝对路径。

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值