Docker
docker容器与主机文件互传
语法:docker cp
$ docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
$ docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
OPTIONS说明:
-
-L :保持源目标中的链接
示例:
1. 主机 /tmp/data目录拷贝到容器ID为ab23080cd5e3的 /data 目录下。
$ docker cp /tmp/data ab23080cd5e3:/data/
2. 主机 /tmp/data目录拷贝到容器ID为ab23080cd5e3中,目录重命名为data。
$ docker cp /tmp/data ab23080cd5e3:/data
3. 将ID为ab23080cd5e3的容器/var/log 目录拷贝到主机的 /tmp/ 目录下。
$ docker cp ab23080cd5e3:/var/log /tmp/
kubernetes集群内
集群pod内文件与主机互传。
方法一:kubectl cp
语法:
#1. 本地上传到pod内
$ kubectl cp <本地文件或目录路径> -n <namespace名称> <Pod名称>:<目标路径>
#2. pod内下载到本地
$ kubectl cp -n <namespace名称> <Pod名称>:<Pod中文件路径> <本地目标路径>
示例:
1. 拷贝主机localfile.txt 文件到namespace为dev-test名为my-pod的pod中/path/路径下:
$ kubectl cp localfile.txt -n dev-test my-pod:/path/
2.namespace为 dev-test 的 my-pod 中 /path/file.txt 文件下载到主机当前路径下,并重命名为filenew.txt:
$ kubectl cp -n dev-test my-pod:/path/file.txt ./filenew.txt
方法二:kubectl exec
语法:
#pod文件下载到本地
$ kubectl exec -it -n <namespace> <Pod名称> -- cat <Pod中文件路径> > <本地路径>
示例:
1. namespace为 dev-test,pod名为 my-pod
中的 /path/file.txt 将文件内容输出到本地文件:
$ kubectl exec -it -n dev-test my-pod -- cat /path/file.txt > file.txt