インスタンス内のファイルにアクセスするには¶
Incus クライアントを使って、ネットワーク経由でインスタンスにアクセスする必要なしに、インスタンス内部のファイルを管理できます。 ファイルを個別に編集、削除したり、ローカルマシンからプッシュ、ローカルマシンにプルできます。 あるいは、インスタンスのファイルシステムをローカルマシン上にマウントできます。
コンテナでは、これらの操作は必ず機能し Incus で直接処理されます。
仮想マシンでは、これらの操作が機能するためには incus-agent
プロセスが仮想マシン内部で稼働している必要があります。
インスタンスのファイルを編集する¶
ローカルマシンからインスタンスのファイルを編集するには、以下のコマンドを入力します:
incus file edit <instance_name>/<path_to_file>
たとえば、インスタンス内の /etc/hosts
ファイルを編集するには、以下のコマンドを入力します:
incus file edit my-container/etc/hosts
注釈
ファイルはインスタンス上に既に存在している必要があります。
インスタンス上にファイルを作成するのに edit
コマンドは使えません。
インスタンスからファイルを削除する¶
インスタンスからファイルを削除するには、以下のコマンドを入力します:
incus file delete <instance_name>/<path_to_file>
インスタンスからローカルマシンにファイルをプルする¶
インスタンスからローカルマシンにファイルをプルするには、以下のコマンドを入力します:
incus file pull <instance_name>/<path_to_file> <local_file_path>
たとえば /etc/hosts
ファイルをカレントディレクトリーにプルするには、以下のコマンドを入力します:
incus file pull my-instance/etc/hosts .
インスタンスのファイルをローカルマシンにプルする代わりに、標準出力にプルして別のコマンドの標準入力にパイプすることもできます。 これは、たとえば、ログファイルをチェックするのに便利です:
incus file pull my-instance/var/log/syslog - | less
ディレクトリーのすべての中身をプルするには、以下のコマンドを入力します:
incus file pull -r <instance_name>/<path_to_directory> <local_location>
ローカルマシンからインスタンスにファイルをプッシュする¶
ローカルマシンからインスタンスにファイルをプッシュするには、以下のコマンドを入力します:
incus file push <local_file_path> <instance_name>/<path_to_file>
ディレクトリーのすべての中身をプッシュするには、以下のコマンドを入力します:
incus file push -r <local_location> <instance_name>/<path_to_directory>
インスタンスのファイルシステムをマウントする¶
インスタンスのファイルシステムをクライアントのローカルパスにマウントできます。
そうするためには、sshfs
がインストールされていることを確認してください。
incus file mount <instance_name>/<path_to_directory> <local_location>
これでローカルマシンからファイルにアクセスできます。
SSH SFTP リスナーをセットアップする¶
別の方法として、SSH SFTP リスナーをセットアップすることもできます。 この方法では任意の SFTP クライアントで専用のユーザー名で接続できます。
そうするには、まず以下のコマンドを入力してリスナーをセットアップします:
incus file mount <instance_name> [--listen <address>:<port>]
たとえば、ローカルマシン上のランダムなポート(たとえば、127.0.0.1:45467
)にリスナーをセットアップするには以下のようにします:
incus file mount my-instance
ローカルネットワークの外側からインスタンスのファイルにアクセスしたい場合、特定のアドレスとポートを渡せます:
incus file mount my-instance --listen 192.0.2.50:2222
注意
あなたのインスタンスをリモートに公開することになるので、これを実行する際には注意してください。
特定のアドレスとランダムなポートでリスナーをセットアップするには以下のようにします:
incus file mount my-instance --listen 192.0.2.50:0
コマンドは割り当てられたポートと接続に使用するユーザー名とパスワードを出力します。
Tip
--auth-user
フラグを渡すとユーザ名を指定できます。
この情報を使ってファイルシステムにアクセスします。
たとえば sshfs
で接続するには、以下のコマンドを入力します:
sshfs <user_name>@<address>:<path_to_directory> <local_location> -p <port>
たとえば以下のようにします:
sshfs xFn8ai8c@127.0.0.1:/home my-instance-files -p 35147
これでインスタンスのファイルシステムをローカルマシン上の指定の場所でアクセスできます。