Kubernetes/使用文档/Kubernetes拷贝文件.md
offends 7a2f41e7d6
All checks were successful
continuous-integration/drone Build is passing
synchronization
2024-08-07 18:54:39 +08:00

1.7 KiB

本文作者:丁辉

Kubernetes 拷贝文件

拷贝容器内文件到本地

方法一

使用 kubectl cp 拷贝

kubectl -n 命名空间 cp 容器名:/容器内文件路径 ./拷贝到本地文件名

示例:

kubectl -n test cp nginx-6db97db958-zrb7r:etc/nginx/nginx.conf ./nginx.conf

执行命令提示

tar: Removing leading `/' from member names

这是在提示你在 kubectl -n 命名空间 cp 容器名:<这里开头不用加 "/" >

方法二

寻找到本地 Docker 持久化存储 拷贝文件到本地

  • 获取容器 ID

      CONTAINER_ID=$(kubectl -n 命名空间 describe  pod 容器名 | grep "Container ID:" | awk -F '/' '{print $3}')
    

    示例:

    CONTAINER_ID=$(kubectl -n test describe  pod nginx-6db97db958-zrb7r | grep "Container ID:" | awk -F '/' '{print $3}')
    
  • 获取存储路径

    docker inspect -f '{{.GraphDriver.Data.UpperDir}}' $CONTAINER_ID
    

方法三

  • 获取容器名称

    kubectl -n 命名空间 describe  pod 容器名 | grep "Containers:" -A 1
    

    示例:

    kubectl -n test describe  pod nginx-6db97db958-zrb7r | grep "Containers:" -A 1
    
  • 寻找 Docker 容器

    docker ps | grep 容器名称
    
  • 拷贝容器内文件

    docker cp 容器名称:/容器内路径 ./本地路径
    

拷贝本地文件到容器内

使用 kubectl cp 拷贝

kubectl -n 命名空间 cp ./本地文件名 容器名:/容器内路径

示例:

kubectl -n test cp ./default.conf nginx-6db97db958-zrb7r:/etc/nginx/conf.d/