95 lines
1.7 KiB
Markdown
95 lines
1.7 KiB
Markdown
> 本文作者:丁辉
|
|
|
|
# Kubernetes 拷贝文件
|
|
|
|
## 拷贝容器内文件到本地
|
|
|
|
### 方法一
|
|
|
|
**使用 kubectl cp 拷贝**
|
|
|
|
```bash
|
|
kubectl -n 命名空间 cp 容器名:/容器内文件路径 ./拷贝到本地文件名
|
|
```
|
|
|
|
> 示例:
|
|
>
|
|
> ```bash
|
|
> kubectl -n test cp nginx-6db97db958-zrb7r:etc/nginx/nginx.conf ./nginx.conf
|
|
> ```
|
|
>
|
|
> **执行命令提示**
|
|
>
|
|
> ```bash
|
|
> tar: Removing leading `/' from member names
|
|
> ```
|
|
>
|
|
> 这是在提示你在 `kubectl -n 命名空间 cp 容器名:<这里开头不用加 "/" >`
|
|
|
|
### 方法二
|
|
|
|
**寻找到本地 Docker 持久化存储 拷贝文件到本地**
|
|
|
|
- 获取容器 ID
|
|
|
|
```bash
|
|
CONTAINER_ID=$(kubectl -n 命名空间 describe pod 容器名 | grep "Container ID:" | awk -F '/' '{print $3}')
|
|
```
|
|
|
|
> 示例:
|
|
>
|
|
> ```bash
|
|
> CONTAINER_ID=$(kubectl -n test describe pod nginx-6db97db958-zrb7r | grep "Container ID:" | awk -F '/' '{print $3}')
|
|
> ```
|
|
|
|
- 获取存储路径
|
|
|
|
```bash
|
|
docker inspect -f '{{.GraphDriver.Data.UpperDir}}' $CONTAINER_ID
|
|
```
|
|
|
|
|
|
### 方法三
|
|
|
|
- 获取容器名称
|
|
|
|
```bash
|
|
kubectl -n 命名空间 describe pod 容器名 | grep "Containers:" -A 1
|
|
```
|
|
|
|
> 示例:
|
|
>
|
|
> ```
|
|
> kubectl -n test describe pod nginx-6db97db958-zrb7r | grep "Containers:" -A 1
|
|
> ```
|
|
|
|
- 寻找 Docker 容器
|
|
|
|
```bash
|
|
docker ps | grep 容器名称
|
|
```
|
|
|
|
- 拷贝容器内文件
|
|
|
|
```bash
|
|
docker cp 容器名称:/容器内路径 ./本地路径
|
|
```
|
|
|
|
|
|
## 拷贝本地文件到容器内
|
|
|
|
**使用 kubectl cp 拷贝**
|
|
|
|
```bash
|
|
kubectl -n 命名空间 cp ./本地文件名 容器名:/容器内路径
|
|
```
|
|
|
|
> 示例:
|
|
>
|
|
> ```bash
|
|
> kubectl -n test cp ./default.conf nginx-6db97db958-zrb7r:/etc/nginx/conf.d/
|
|
> ```
|
|
|
|
|
|
|