🐈
kubectl cpでうまくファイル転送できないときに確認したいこと
エラー126
メッセージ
command terminated with exit code 126
原因
コンテナにtarが入っていないかもしれないのでインストールする
ディレクトリを開けなかったエラー
メッセージ
error: open .: is a directory
原因
kubectl cpするタイミングでは、WorkingDirectoryがルートになる
なので、kubectl execでログイン後pwdでWorkingDirectoryを確認。
WorkingDirectory直下に転送したいファイルを置き、相対パスで指定するのがいい。
補足
-
コンテナが複数あるPodに対しては、-cでコンテナを指定しておいたほうがいい。
指定しない場合、defualtコンテナ(1つ目のコンテナ)に対して実行される。 -
コンテナからローカルにcpする際のコピー先では、
.
(カレント)は使えない模様
うまくいくであろうコマンド
例
kubectl cp <Pod名>:<ファイル名> <ファイル名> -c <コンテナ名>
サンプル
WorkingDirectory直下にtest.txtをおいた想定
kubectl cp app-pod:test.txt test.txt -c app-container
Discussion