This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.6.6. OpenShift Container Platform コンテナーへの/からのファイルのコピー
CLI を使用して、rsync コマンドでコンテナーのリモートディレクトリーにローカルファイルをコピーするか、またはそのディレクトリーからローカルファイルをコピーすることができます。
6.6.1. ファイルをコピーする方法について リンクのコピーリンクがクリップボードにコピーされました!
oc rsync コマンドまたは remote sync は、バックアップと復元を実行するためにデータベースアーカイブを Pod にコピー、または Pod からコピーするのに役立つツールです。また、実行中の Pod がソースファイルのホットリロードをサポートする場合に、ソースコードの変更を開発のデバッグ目的で実行中の Pod にコピーするためにも、oc rsync を使用できます。
oc rsync <source> <destination> [-c <container>]
$ oc rsync <source> <destination> [-c <container>]
6.6.1.1. 要件 リンクのコピーリンクがクリップボードにコピーされました!
- Copy Source の指定
-
oc rsyncコマンドのソース引数はローカルディレクトリーまた Pod ディレクトリーのいずれかを示す必要があります。個々のファイルはサポートされていません。
Pod ディレクトリーを指定する場合、ディレクトリー名の前に Pod 名を付ける必要があります。
<pod name>:<dir>
<pod name>:<dir>
ディレクトリー名がパスセパレーター (/) で終了する場合、ディレクトリーの内容のみが宛先にコピーされます。それ以外の場合は、ディレクトリーとその内容が宛先にコピーされます。
- Copy Destination の指定
-
oc rsyncコマンドの宛先引数はディレクトリーを参照する必要があります。ディレクトリーが存在せず、rsyncがコピーに使用される場合、ディレクトリーが作成されます。 - 宛先でのファイルの削除
-
--deleteフラグは、ローカルディレクトリーにないリモートディレクトリーにあるファイルを削除するために使用できます。 - ファイル変更についての継続的な同期
-
--watchオプションを使用すると、コマンドはソースパスでファイルシステムの変更をモニターし、変更が生じるとそれらを同期します。この引数を指定すると、コマンドは無期限に実行されます。
同期は短い非表示期間の後に実行され、急速に変化するファイルシステムによって同期呼び出しが継続的に実行されないようにします。
--watch オプションを使用する場合、動作は通常 oc rsync に渡される引数の使用を含め oc rsync を繰り返し手動で起動する場合と同様になります。そのため、--delete などの oc rsync の手動の呼び出しで使用される同じフラグでこの動作を制御できます。
6.6.2. コンテナーへの/からのファイルのコピー リンクのコピーリンクがクリップボードにコピーされました!
コンテナーへの/からのローカルファイルのコピーのサポートは CLI に組み込まれています。
前提条件
oc rsync を使用する場合は、以下の点に注意してください。
- rsync がインストールされていること
-
oc rsyncコマンドは、クライアントマシンおよびリモートコンテナー上に存在する場合は、ローカルのrsyncツールを使用します。
rsync がローカルの場所またはリモートコンテナーに見つからない場合は、tar アーカイブがローカルに作成されてからコンテナーに送信されます。ここで、tar ユーティリティーがファイルの展開に使用されます。リモートコンテナーで tar を利用できない場合は、コピーに失敗します。
tar のコピー方法は oc rsync と同様に機能する訳ではありません。たとえば、oc rsync は、宛先ディレクトリーが存在しない場合にはこれを作成し、ソースと宛先間の差分のファイルのみを送信します。
Windows では、cwRsync クライアントが oc rsync コマンドで使用するためにインストールされ、PATH に追加される必要があります。
手順
ローカルディレクトリーを Pod ディレクトリーにコピーするには、以下の手順を実行します。
oc rsync <local-dir> <pod-name>:/<remote-dir> -c <container-name>
$ oc rsync <local-dir> <pod-name>:/<remote-dir> -c <container-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc rsync /home/user/source devpod1234:/src -c user-container
$ oc rsync /home/user/source devpod1234:/src -c user-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pod ディレクトリーをローカルディレクトリーにコピーするには、以下の手順を実行します。
oc rsync devpod1234:/src /home/user/source
$ oc rsync devpod1234:/src /home/user/sourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
oc rsync devpod1234:/src/status.txt /home/user/
$ oc rsync devpod1234:/src/status.txt /home/user/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.6.3. 高度な Rsync 機能の使用 リンクのコピーリンクがクリップボードにコピーされました!
oc rsync コマンドは標準の rsync よりも少ないコマンドラインのオプションを表示します。oc rsync で利用できない標準の rsync コマンドラインオプションを使用する必要がある場合 (例: --exclude-from=FILE オプション)、以下のように回避策として標準 rsync の --rsh (-e) オプション、または RSYNC_RSH 環境変数を使用できる場合があります。
rsync --rsh='oc rsh' --exclude-from=FILE SRC POD:DEST
$ rsync --rsh='oc rsh' --exclude-from=FILE SRC POD:DEST
または、以下を実行します。
RSYNC_RSH 変数をエクスポートします。
export RSYNC_RSH='oc rsh'
$ export RSYNC_RSH='oc rsh'
次に、rsync コマンドを実行します。
rsync --exclude-from=FILE SRC POD:DEST
$ rsync --exclude-from=FILE SRC POD:DEST
上記の例のいずれも標準の rsync をリモートシェルプログラムとして oc rsh を使用するように設定して リモート Pod に接続できるようにします。これらは oc rsync を実行する代替方法となります。