2.5. ホストフォルダー
2.5.1. 概要
ホストフォルダーは、ホストと CDK 仮想マシンとの間で共有されるホストのディレクトリーです。これにより、ホストと仮想マシンの間の 2 方向ファイル同期が可能になります。以下のセクションでは、minishift hostfolder
コマンドの使用方法を説明します。
2.5.2. minishift hostfolder コマンド
CDK は、ホストフォルダーのリスト、追加、マウント、マウント解除、および削除を行う minishift hostfolder
コマンドを提供します。hostfolder
コマンドを使用して、複数の共有フォルダーをカスタム指定のマウントポイントにマウントできます。
2.5.2.1. 前提条件
2.5.2.1.1. SSHFS
SSHFS は、ホストフォルダーを共有するデフォルトのテクノロジーです。これは前提条件なしで機能します。
2.5.2.1.2. CIFS
ホストフォルダーは、CIFS を使用して共有できます。Windows、macOS、および Linux で CIFS を使用できます。
macOS では、System Preferences > Sharing で CIFS ベースの共有を有効にできます。詳細は、「How to connect with File Sharing on your Mac」を参照してください。
Linux の場合は、ディストリビューション固有の指示に従って Samba をインストールします。Red Hat Enterprise Linux で CIFS の Samba 実装を設定する方法は、「RHEL の Samba ファイルおよび印刷サーバー」を参照してください。
2.5.2.2. ホストフォルダーの表示
minishift hostfolder list
コマンドは、定義されたホストフォルダーの概要、その名前、マウントポイント、リモートパス、および現在マウントされているかどうかを示します。
出力例は以下のようになります。
$ minishift hostfolder list Name Type Source Mountpoint Mounted test sshfs /Users/user/test /mnt/sda1/test N
この例では、/Users/user/test を CDK 仮想マシンの /mnt/sda1/test にマウントする、test という名前の SSHFS ベースのホストフォルダーがあります。現在、共有はマウントされていません。
2.5.2.3. ホストフォルダーの追加
minishift hostfolder add
コマンドを使用すると、新しいホストフォルダーを定義できます。
使用する構文は、ホストフォルダーのタイプによって異なります。タイプに関係なく、非対話型と対話的な設定のいずれかを選択できます。デフォルトは非対話的です。--interactive
フラグを指定すると、対話形式の設定モードを選択できます。
以下のセクションでは、CIFS および SSHFS ホストフォルダーを設定する例を紹介します。
2.5.2.3.1. CIFS
CIFS ベースのホストフォルダーの追加
$ minishift hostfolder add -t cifs --source //192.168.99.1/MYSHARE --target /mnt/sda1/myshare --options username=user,password=mysecret,domain=MYDOMAIN myshare
上記のコマンドにより、myshare という名前の新しいホストフォルダーが作成されます。ホストフォルダーのソースは、必要な UNC パス //192.168.99.1/MYSHARE です。ターゲットまたはマウントポイントは、CDK 仮想マシン内の /mnt/sda1/myshare です。--options
フラグを使用すると、ホストフォルダータイプ固有のオプションを、コンマ区切りのキーと値のペアのリストを使用して指定できます。CIFS ホストフォルダーの場合、必要なオプションは CIFS 共有のユーザー名およびパスワードです。--options
フラグを使用して、共有のドメインを指定することもできます。多くの場合、これは省略できますが、Windows では、アカウントが Microsoft アカウントにリンクされていると、Microsoft アカウントメールアドレスをユーザー名として使用し、$env:COMPUTERNAME
がドメインとして表示されるマシン名を使用する必要があります。
Windows ホストでは、minishift hostfolder add
コマンドは、users-share
オプションも提供します。このオプションを指定すると、UNC パスを指定せず、C:\Users が想定されます。
2.5.2.3.2. SSHFS
SSHFS ベースのホストフォルダーの追加
$ minishift hostfolder add -t sshfs --source /Users/user/myshare --target /mnt/sda1/myshare myshare
SSHFS ベースのホストフォルダーの場合は、ホストフォルダーのソースとターゲットのみを指定する必要があります。
ホストフォルダーを追加する際に、--options
フラグを使用してマウント中に使用されるタイプ固有のオプションを指定できます。以下は例になります。
$ minishift hostfolder add -t sshfs --source ~/myshare/ --target /mnt/sda1/myshare --options "-o compression=no" myshare
2.5.2.3.3. インスタンス固有のホストフォルダー
デフォルトでは、ホストフォルダーの定義は永続的であり、他の 永続的な設定 オプションと似ています。つまり、これらのホストフォルダー定義は削除後も CDK 仮想マシンの再作成後も維持されます。
特定の CDK インスタンスに対してのみホストフォルダーを定義する必要がある場合があります。これを実行するには、minishift hostfolder add
コマンドの --instance-only
フラグを使用できます。--instance-only
フラグで作成されるホストフォルダー定義は、minishift delete
時に他のインスタンス固有の状態と共に削除されます。
2.5.2.4. ホストフォルダーのマウント
ホストフォルダーを追加したら、minishift host folderer mount
コマンドを使用して、その名前でホストフォルダーをマウントします。
$ minishift hostfolder mount myshare
以下を実行し、ホストフォルダーがマウントされていることを確認できます。
$ minishift hostfolder list Name Mountpoint Remote path Mounted myshare /mnt/sda1/myshare //192.168.99.1/MYSHARE Y
マウントされたホストフォルダーの実際のコンテンツを一覧表示できます。
$ minishift ssh "ls -al /mnt/sda1/myshare"
SSHFS ベースのホストフォルダーをマウントすると、SFTP サーバープロセスがホストの 2022 ポートで起動します。ネットワークおよびファイアウォールの設定により、このポートを開くことができることを確認してください。このポートを設定する必要がある場合は、キー hostfolders-sftp-port
を使用して CDK の 永続設定 を使用できます。以下に例を示します。
$ minishift config set hostfolders-sftp-port 2222
2.5.2.4.1. ホストフォルダーの自動マウント
ホストフォルダーは、minishift start
するたびに自動的にマウントできます。自動マウントを設定するには、CDK 設定ファイルで hostfolders-automount
オプションを設定する必要があります。
$ minishift config set hostfolders-automount true
hostfolders-automount
オプションを設定すると、CDK は、minishift start
時に定義されたすべてのホストフォルダーのマウントを試みます。
2.5.2.5. ホストフォルダーのマウント解除
minishift hostfolder umount
コマンドを使用して、ホストフォルダーのマウントを解除します。
$ minishift hostfolder umount myshare $ minishift hostfolder list Name Mountpoint Remote path Mounted myshare /mnt/sda1/myshare //192.168.99.1/MYSHARE N
2.5.2.6. ホストフォルダーの削除
minishift hostfolder remove
コマンドを使用して、ホストフォルダーの定義を削除します。
$ minishift hostfolder list Name Mountpoint Remote path Mounted myshare /mnt/sda1/myshare //192.168.1.82/MYSHARE N $ minishift hostfolder remove myshare $ minishift hostfolder list No host folders defined