Docker
Docker(英語) を使用すると、開発者は、本番環境と同じ環境でコードをテストするために、コンテナー内にアプリケーションをデプロイできます。PhpStorm は、Docker(英語) プラグインを使用して Docker サポートを提供します。プラグインはバンドルされており、デフォルトで有効になっています。Docker プラグインは PhpStorm にバンドルされており、デフォルトでアクティブ化されています。プラグインが無効になっている場合は、プラグインの管理の説明に従って、設定 / 環境設定 | プラグインページでプラグインを有効にします。
Docker サポートを有効にする
Docker をインストールして実行します。
詳しくは、Docker のドキュメント(英語)を参照してください。
Docker デーモンの接続設定を構成します。
設定 / 環境設定ダイアログ Ctrl+Alt+S で、 を選択します。
をクリックして Docker 構成を追加し、Docker デーモンへの接続方法を指定します。
接続設定は Docker のバージョンとオペレーティングシステムによって異なります。詳しくは、Docker の設定を参照してください。
ダイアログの下部に接続完了メッセージが表示されます。
メッセージが表示されない場合は、Docker | ツールページの Docker マシン実行可能ファイル設定を確認してください。
Docker デーモンに接続します。
構成された Docker 接続がサービスツールウィンドウ( または Alt+8 )に表示されます。Docker ノード
を選択して
をクリックするか、コンテキストメニューから接続を選択します。
Docker 接続設定を編集するには、Docker ノードを選択してツールバーの
をクリックするか、コンテキストメニューから構成の編集を選択します。
サービスツールウィンドウ( または Alt+8)では、イメージのプルとプッシュ、コンテナーの作成と実行、Docker Compose の管理などを行うことができます。他のツールウィンドウと同様に、イメージまたはコンテナーの名前の入力を開始して、一致するアイテムをハイライトできます。

イメージを管理する
Docker イメージはコンテナーを実行するための実行可能パッケージです。開発ニーズに応じて、Docker を次の目的で使用できます。
- Docker レジストリから事前構築されたイメージをプルする
例: Postgres サーバーコンテナーを実行するイメージをプルして、アプリケーションが本番データベースとどのようにやり取りするのかをテストできます。
- Dockerfile からローカルにイメージを構築する
例: 特定のバージョンの PHP でコンテナーを実行するイメージを作成して、その中でアプリケーションを実行することができます。
- イメージを Docker レジストリにプッシュする
例: 適切な環境を設定するのではなく、特定のバージョンの言語でアプリケーションがどのように動作するかを他の人に見せたい場合は、イメージからコンテナーを実行できます。
イメージは Docker レジストリを介して配布されます。Docker Hub(英語) は、最も一般的なすべてのイメージ(さまざまな Linux フレーバー、データベース管理システム、Web サーバー、ランタイムなど)を持つデフォルトの公開レジストリです。他のパブリックおよびプライベートの Docker レジストリがあり、独自のレジストリサーバーをデプロイすることもできます。
Docker レジストリを設定する
設定 / 環境設定ダイアログ Ctrl+Alt+S で、 を選択します。
をクリックして Docker レジストリ設定を追加し、レジストリへの接続方法を指定します。認証情報を指定すると、PhpStorm は自動的にレジストリへの接続を確認します。接続完了メッセージがダイアログの下部に表示されます。
Docker レジストリからイメージを取得する
サービスツールウィンドウで、イメージノードを選択します。
Docker レジストリを選択し、リポジトリとタグ(イメージの名前とバージョン、たとえば
php-71-apache-xdebug-26:latest
)を指定します。Ctrl+Enter を押して、docker プル(英語)を実行します。
Dockerfile からイメージを作成する
Dockerfile を編集しているとき、PhpStorm は構成されたレジストリからのイメージを補完します。 Ctrl を押しながらイメージ名をクリックして、そのページを Web ブラウザーで開くこともできます。
イメージを作成する Dockerfile(英語) を開きます。
ガターで
をクリックし、イメージの作成を選択します。
PhpStorm は、docker ビルド(英語)コマンドを実行します。
イメージを Docker レジストリにプッシュする
サービスツールウィンドウで、アップロードするイメージを選択して
をクリックするか、コンテキストメニューからイメージのプッシュを選択します。
Docker レジストリを選択し、リポジトリとタグ(イメージの名前とバージョン、たとえば
my-app:v2
)を指定します。OK をクリックして、docker プッシュ(英語)コマンドを実行します。
プルまたは構築したイメージはローカルに保存され、サービスツールウィンドウのイメージに表示されます。イメージを選択すると、プロパティタブの ボタンをクリックして ID を表示したりクリップボードにコピーしたりできます。

イメージの詳細情報を表示するには、イメージを右クリックして、コンテキストメニューからインスペクションを選択します。PhpStorm は、docker イメージインスペクション(英語)コマンドを実行し、出力をインスペクションタブに出力します。

タグが付いていないイメージ <none>:<none>
は、次のいずれかになります。
他のイメージのレイヤーとして機能し、スペースをとらない中間イメージ
別のイメージの新しいバージョンに基づいてイメージを再構築したときに残るぶら下がりイメージ。ディスク容量を節約するために、ぶら下がっているイメージを定期的に削除する必要があります。
タグの付いていないイメージをリストから非表示にするには、Docker ツールバーの をクリックし、タグなしのイメージをクリックしてチェックマークを削除します。
1 つまたは複数のイメージを削除するには、リストから選択して をクリックします。
コンテナーの実行
コンテナーは、対応するイメージのランタイムインスタンスです。詳細については、docker 実行(英語)コマンドリファレンスを参照してください。
PhpStorm は、実行構成( )を使用して Docker コンテナーを実行します。Docker 実行構成には 3 つのタイプがあります。
Docker イメージ : 既存のイメージからコンテナーを実行すると自動的に作成されます。以前にプルまたはビルドしたローカルに存在する Docker イメージから実行できます。
Dockerfile: Dockerfile からコンテナーを実行すると自動的に作成されます。この構成では、Dockerfile からイメージを作成し、このイメージからコンテナーを派生させます。
Docker-compose : Docker Compose ファイル(英語)からマルチコンテナー Docker アプリケーションを実行するになると自動的に作成されます。
既存のイメージからコンテナーを実行する
サービスツールウィンドウで、イメージを選択して
をクリックするか、コンテキストメニューからコンテナーの作成を選択します。
コンテナーの作成ポップアップで、作成をクリックします。
表示される Docker 構成の作成ダイアログでは、構成に固有の名前を付けて、コンテナーの名前を指定できます。コンテナー名フィールドを空のままにしておくと、Docker はそれにランダムな一意の名前を付けます。
完了したら、実行をクリックして新しい構成を起動します。
Dockerfile からコンテナーを実行する
コンテナーを実行する Dockerfile を開きます。
ガターの
をクリックして、特定の Docker ノードでコンテナーを実行するように選択します。
これにより、デフォルト設定で実行構成が作成および開始されます。これにより、Dockerfile に基づいてイメージが構築され、次にこのイメージに基づいてコンテナーが実行されます。
カスタム設定でランコンフィギュレーションを作成するには、ガターの をクリックして新しい実行構成を選択します。構築したイメージのカスタムタグ、コンテナーの名前、Dockerfile を読み込むためのコンテキストフォルダーを指定できます。たとえば、Dockerfile の範囲外のアーティファクトがあり、それをイメージのファイルシステムに追加したい場合は、コンテキストフォルダーが便利です。
コマンドラインオプション
コマンドラインでコンテナーを実行する場合、次の構文が使用されます。
すべてのオプションパラメーターは、対応する Docker 実行構成フィールドで指定することができます。
実行構成を開くには、コンテナーを右クリックして構成の編集を選択するか、Dockerfile のガターアイコンメニューを使用するか、メインメニューから を選択します。

オプションは、コマンドラインオプションフィールドで指定します。前のスクリーンショットでは、コンテナーは my-net
ネットワークに接続され、エイリアス my-app
が割り当てられています。
コンテナーの起動時に実行されるコマンドと引数は、エントリポイントフィールドとコマンドフィールドに指定されています。これらのフィールドは、Dockerfile 内の対応する ENTRYPOINT および Cmd 命令をオーバーライドします。
コマンドプレビューフィールドには、この実行構成で使用される実際の Docker コマンドが表示されます。
実行構成で次のコンテナー設定を構成することもできます。
バインドマウント
Docker は、-v
または --volume
オプションを使用して、ホストマシンからコンテナーにファイルまたはディレクトリをマウントできます。これは、バインドマウントフィールドを使用して Docker 実行構成で設定できます。

バインドマウントフィールドで をクリックし、ホストディレクトリとそれをマウントするコンテナー内の対応するパスを指定してバインディングを追加します。コンテナーボリュームへの書き込みを無効にしたい場合は、読み取り専用を選択します。例: ローカルの MySQL データディレクトリ(/Users/Shared/mysql)をコンテナー内の MySQL データディレクトリ(/var/lib/mysql)にマウントしたい場合は、前のスクリーンショットに示すように設定できます。
コマンドプレビューフィールドを展開すると、次の行が追加されたことがわかります。
これは、バインドマウントダイアログを使用してボリュームバインディングのリストを作成する代わりに、コマンドラインオプションフィールドで使用できます。
実行中のコンテナーのボリュームバインディングの表示と変更
サービスツールウィンドウで、コンテナーを選択し、ボリュームバインディングタブを選択します。
新しいバインディングを作成するには、
をクリックします。既存のものを編集するには、バインディングを選択して
をクリックします。
必要に応じて設定を指定し、保存をクリックして変更を適用します。
コンテナーが停止して削除され、指定された変更内容で新しいコンテナーが作成されます。ただし、変更は対応する実行構成に保存されません。
バインドポート
Docker は、-p
または --publish
オプションを使用して、ホストマシン上の特定のポートをコンテナー内のポートにマップできます。これは、コンテナーを外部からアクセス可能にするために使用できます。Docker 実行構成では、すべてのコンテナーポートをホストに公開するか、またはバインドポートフィールドを使用してポートマッピングを指定するかを選択できます。

バインドポートフィールドとバインディングの をクリックして、ホストのどのポートをコンテナーのどのポートにマップするかを指定します。ポートにアクセス可能な特定のホスト IP を指定することもできます(たとえば、ローカルでのみアクセス可能にするには 127.0.0.1 に設定し、ネットワーク内のすべてのコンピューターに対して開くには 0.0.0.0 に設定します)。
Docker ホストポート %5432% ですでに MySQL を実行している場合、前のスクリーンショットに示すように、ホスト上のポート %5433% をコンテナー内の %5432% にマッピングできます。これにより、ホスト内のポート %5433% を介してコンテナー内で実行される MySQL がアクセス可能になります。
コマンドプレビューフィールドを展開すると、次の行が追加されたことがわかります。
これは、ポートバインディングダイアログを使用してポートバインディングのリストを作成する代わりに、コマンドラインオプションフィールドで使用できます。
実行中のコンテナーのポートバインディングの表示と変更
サービスツールウィンドウで、コンテナーを選択し、ポートバインディングタブを選択します。
新しいバインディングを作成するには、
をクリックしてください。既存のバインディングを編集するには、バインディングを選択して
をクリックします。すべてのポートを公開するチェックボックスが選択されている場合、個々のポートマッピングを指定できるようにするには、これをクリアします。
必要に応じて設定を指定し、保存をクリックして変更を適用します。
コンテナーが停止して削除され、指定された変更内容で新しいコンテナーが作成されます。ただし、変更は対応する実行構成に保存されません。
環境変数
環境変数は通常、使用しているベースイメージに関連付けられている Dockerfile(英語) で設定されます。Docker(英語) が新しいコンテナーごとに自動的(英語)に設定する環境変数(英語)もあります。 -e
または --env
オプションを使用して、追加の変数を指定し、Docker が設定する変数を再定義できます。Docker 実行構成では、環境変数フィールドを使用して環境変数を構成できます。

環境変数フィールドの をクリックして、変数の名前と値を追加します。例: デフォルトで(アプリケーションを実行しているユーザーのオペレーティングシステム名ではなく)特定のユーザー名で MySQL に接続したい場合は、前のスクリーンショットに示すように
MYSQL_USER
変数を定義できます。
コマンドプレビューフィールドを展開すると、次の行が追加されたことがわかります。
これは、環境変数ダイアログを使用して名前と値のリストを作成する代わりにコマンドラインオプションフィールドで使用できます。機密情報(パスワード、機密事項など)を環境変数として渡す必要がある場合は、--env-file
オプションを使用してこの情報を含むファイルを指定できます。
実行中のコンテナーの環境変数の表示と変更
サービスツールウィンドウで、コンテナーを選択し、環境変数タブを選択します。
新しい変数を追加するには、
をクリックします。既存のものを編集するには、変数を選択して
をクリックします。
必要に応じて設定を指定し、保存をクリックして変更を適用します。
コンテナーが停止して削除され、指定された変更内容で新しいコンテナーが作成されます。ただし、変更は対応する実行構成に保存されません。
ビルド時の引数
Docker は、docker build
の --build-arg
オプションを使用して中間イメージまたは最終イメージに残らない特定の環境変数のビルド時の値を定義できます。これらは Dockerfile の ARG
命令でデフォルト値で指定する必要があります。ビルド引数フィールドを使用して、Docker 実行構成でビルド時の引数を設定できます。
例: 特定のバージョンの MySQL でビルド時の引数を使用してイメージを構築することができます。これを行うには、ARG
命令を Dockerfile の先頭に追加します。
この場合の MSTAG
変数は、ビルド時引数として再定義しないと、デフォルトで latest
になります。デフォルトでは、この Dockerfile は最新の MySQL バージョンでイメージを生成します。ただし、ビルド引数フィールドを使用して MSTAG
変数を再定義することができます。

前のスクリーンショットでは、MSTAG
は 5.5
に設定されています。これは Docker に mysql:5.5
をプルするように指示します。この実行構成をデプロイすると、イメージが構築され、MySQL バージョン 5.5 でコンテナーが実行されます。
これを確認するには、コンテナー内で mysql -V
を実行して出力を確認します。mysql Ver 14.14 Distrib 5.5.60
またはそれ以降のバージョンになります。
コマンドプレビューフィールドを展開すると、次のオプションが docker build
コマンドに追加されたことがわかります。
コンテナーとの連携
作成されたコンテナーはサービスツールウィンドウに表示されます。コンテナーを選択すると、その ID(および対応するイメージの ID)を表示し、プロパティタブの を使用してそれをクリップボードにコピーできます。コンテナーの新しい名前を指定して保存をクリックして、同じイメージからこの新しい名前で別のコンテナーを開始することもできます。
デフォルトでは、サービスツールウィンドウには、実行されていないものも含めてすべてのコンテナーが表示されます。リストから停止したコンテナーを非表示にするには、 をクリックしてから停止したコンテナーの表示をクリックしてチェックボックスをオフにします。
コンテナーが Docker 実行構成を使用して作成された場合、そのデプロイログを表示するには、コンテナーを選択してログをデプロイするタブを開きます。コンテナーの STDOUT
および STDERR
からのログメッセージを表示するには、コンテナーを選択してログタブを開きます。詳細については、docker ログ(英語)コマンドリファレンスを参照してください。
ファイルタブを使用して、実行中のコンテナー内のファイルを参照できます。ファイルを選択し、 をクリックしてリモートでエディターで開くか、
をクリックしてファイルのコピーをスクラッチとして作成します。
実行中のコンテナー内でコマンドを実行する
サービスツールウィンドウで、コンテナー名を右クリックし、実行をクリックします。
コンテナー内でコマンドを実行するポップアップで、作成をクリックします。
実行ダイアログでコマンドを入力し、OK をクリックします。例:
ls /tmp
/tmp ディレクトリの内容を一覧表示する
mkdir /tmp/my-new-dir
/tmp ディレクトリ内に my-new-dir ディレクトリを作成する
/bin/bash
bash
セッションを開始する
詳細については、docker exec(英語) コマンドリファレンスを参照してください。
実行中のコンテナーに関する詳細情報の表示
サービスツールウィンドウで、コンテナー名を右クリックし、インスペクションをクリックします。
出力は、インスペクションタブの JSON 配列としてレンダリングされます。
詳細については、docker インスペクション(英語)コマンドリファレンスを参照してください。
コンテナー内で実行中のプロセスの表示
サービスツールウィンドウで、コンテナー名を右クリックし、プロセスの表示をクリックします。
出力は、プロセスタブの JSON 配列としてレンダリングされます。
詳細については、docker トップ(英語)コマンドリファレンスを参照してください。
実行可能なコンテナーの出力にコンソールをアタッチする
サービスツールウィンドウで、コンテナーを右クリックし、接続をクリックします。
コンソールは、コンテナー内で実行されている ENTRYPOINT(英語) プロセスの出力に接続され、添付のコンソールタブで表示されます。
詳細については、docker アタッチ(英語)コマンドリファレンスを参照してください。
Docker Compose
Docker Compose(英語) はマルチコンテナーアプリケーションの実行に使用されます。例: Web サーバー、バックエンドデータベース、およびアプリケーションコードを別々のサービスとして実行できます。必要に応じてさらに多くのコンテナーを追加することによって、各サービスを拡大縮小することができます。これにより、本番と同様に、動的環境で効率的な開発とテストを実行することができます。
マルチコンテナー Docker アプリケーションの実行
1 つまたは複数の Docker Compose ファイル(英語)で必要なサービスを定義します。
メインメニューから
を選択します。をクリックし、Docker をポイントして、Docker-compose をクリックします。
コンテナーで実行するサービスを定義する Docker Compose ファイルを指定します。必要に応じて、この構成が開始するサービスを制限し、環境変数(英語)を指定し、対応するコンテナーを開始する前にイメージのビルドを強制できます(つまり、docker-compose up(英語) コマンドに
--build
オプションを追加します)。実行構成が準備完了したら、実行します。
Docker Compose がマルチコンテナーアプリケーションを実行するとき、サービスツールウィンドウを使用して特定のサービスを制御し、コンテナーと対話できます。コンテナーは、コンテナーノード(スタンドアロンコンテナーのみ)ではなく、専用作成するノードに一覧表示されます。
サービスをスケールする
サービスツールウィンドウで、スケーリングするサービスを選択して
をクリックするか、コンテキストメニューからスケールを選択します。
このサービスに必要なコンテナーの数を指定し、OK をクリックします。
実行中のサービスを停止する
サービスツールウィンドウで、サービスを選択して
をクリックするか、コンテキストメニューから停止を選択します。
実行中のサービスをすべて停止する
サービスツールウィンドウで作成するノードを選択し、
をクリックします。
アプリケーションをダウンさせる
サービスツールウィンドウで作成するノードを選択し、
をクリックします。
これにより、関連するすべてのネットワーク、ボリューム、イメージとともにコンテナーが停止および削除されます。
アプリケーションの実行に使用された Docker Compose ファイルを開く
サービスツールウィンドウで、作成するノードまたはネストされたサービスノードを右クリックしてから、コンテキストメニュー F4 のソースに移動をクリックします。
Docker-compose 実行構成は、Docker Compose ファイルと同じディレクトリにある場合、.env サフィックスが付いた環境ファイル(英語)を識別します。
トラブルシューティング
次のいずれかの問題が発生した場合は、対応する推奨ソリューションを試してください。
Docker に接続できません
以下を確認してください:
Docker が動作しています。
Docker 接続設定は正しいです。
Windows で Docker を使用している場合は、Docker 設定の一般セクションで TLS なしで tcp://localhost:2375 上のデーモンを公開オプションを有効にします。
Docker Toolbox を使用している場合は、Docker マシンが実行中であり、その実行可能ファイルがビルド、実行、デプロイ | Docker | ツールの設定 / 環境設定ダイアログ Ctrl+Alt+S で正しく指定されていることを確認してください。
イメージをプルすることができません
イメージをプルしようとすると、次のメッセージが表示されます。
この場合、<your_home_dir>/.docker ディレクトリに移動し、config.json ファイルを削除してください。
Docker Compose を使用できません
ビルド、実行、デプロイ | Docker | ツールの設定 / 環境設定ダイアログ Ctrl+Alt+S で、Docker Compose 実行可能ファイルが正しく指定されていることを確認してください。
ポートバインディングを使用できません
対応するコンテナーポートが露出していることを確認します。Dockerfile(英語) で EXPOSE(英語) コマンドを使用してください。
既存の Dockerfiles または Docker Compose ファイルを関連するタイプに関連付けることができません
新しい Dockerfiles または Docker compose ファイルを作成すると、PhpStorm はそのタイプを自動的に識別します。ファイルの種類がその名前から明らかでない場合、ファイルの種類を手動で選択するよう求められます。既存のファイルを正しいタイプに関連付けるには、プロジェクトビューでそのファイルを右クリックし、コンテキストメニューからファイルタイプの関連付けを選択します。
ファイルタイプの関連付けアクションが無効になっている場合は、おそらくファイル名が現在のファイルタイプのパターンとして登録されていることを意味します。例: テキストファイルとして認識されるカスタム名の Dockerfile がある場合、それを Dockerfile タイプと関連付けることはできません。ファイルの種類のパターンを削除するには、次の操作行います。
設定 / 環境設定ダイアログ Ctrl+Alt+S で、エディター | ファイルタイプを選択します。
該当するファイルタイプ(この場合はテキスト)を選択し、ファイル名でパターンを削除します。
変更を適用するには、OK をクリックします。
コンテキストメニューでファイルタイプの関連付けを使用して正しいファイルタイプを設定できるようになりました。
制限
Docker 統合プラグインには特定の制限とバグがありますが、JetBrains は常にその修正と改善に取り組んでいます。Docker の問題のリスト(英語)は、バグ追跡システムで見つけて、最も影響のある問題(英語)に投票することができます。独自のバグや機能リクエストを提出することもできます。
関連ページ:

プラグインを管理する | PhpStorm
プラグインは以下に示すように PhpStorm のコア機能を拡張します。バージョン管理システム、アプリケーションサーバー、およびその他のツールとの統合を提供する、さまざまな言語とフレームワークのコーディング支援サポートを追加する、ショートカットヒント、ライブプレビュー、ファイルウォッチャーなどで生産性を向上、コーディング演習と検証で新しいプログラミング言語を学ぶのに役立ちます、プラグイン設定を開く設定 / 環境設定ダイアログで、プラグインを選択します。マーケットプレースタブを使用して、JetB...

Docker | PhpStorm
Docker API にアクセスするための設定を指定します。Docker と PhpStorm の統合の使用に関する詳細については、Docker を参照してください。名前設定の名前。Docker デーモンに接続 Docker API への接続方法を選択します。Windows 用 Docker: Docker デスクトップ for Windows を使用する場合の推奨オプション。Mac 用 Docker: Mac に Docker デスクトップを使用する場合の推奨オプション。Unix ソケット: これ...

サービスツールウィンドウ | PhpStorm
サービスツールウィンドウには、ソフトウェア開発中に役立つさまざまなサービスが含まれています。実行 / デバッグ構成、データベースセッション、Docker 接続などです。プラグイン開発者は、IntelliJ プラットフォーム API を介して他のサービスを追加できます。メインツールバー:メインツールバーには、すべてのサービスタイプに共通の次のボタンとメニューが含まれています。すべて展開するリスト内のすべての項目を展開します。すべて折りたたむリスト内のすべての項目を折りたたみます。グループ化サービ...

コード補完 | PhpStorm
このセクションでは、コーディングプロセスのスピードアップを可能にするコンテキスト対応コード補完のさまざまなテクニックについて説明します。基本補完:基本コード補完は、可視性スコープ内のクラス、メソッド、キーワードの名前を完成させるのに役立ちます。コード補完を呼び出すと、PhpStorm はコンテキストを分析し、現在のキャレット位置から到達可能な選択肢を提案します(提案にはライブテンプレートも含まれます)。基本コード補完がフィールド、パラメーター、または変数宣言の一部に適用されている場合、PhpS...

実行 / デバッグ構成を操作する | PhpStorm
PhpStorm は、実行 / デバッグ構成を使用して、アプリケーションを実行、デバッグ、テストします。各構成は、名前付きの実行 / デバッグ起動プロパティのセットです。実行 / デバッグ構成には 2 つのタイプがあります。一時的–コンテキストメニューからを選択するたびに作成されます。コンテキストメニューを呼び出すには、オブジェクトまたは領域を右クリックします。一時構成の最大数は 5 です。永続的–テンプレートから明示的に作成されるか、一時的な構成を保存することによって作成されます。永続的な構...

Vagrant: 再現可能な開発環境の使用 | PhpStorm
Vagrant は、仮想マシンのライフサイクルを管理するために使用されるコマンドラインユーティリティです。PhpStorm は、Vagrant との完全な統合を提供し、Vagrant 仮想環境の構成、仮想マシンの動作の制御、およびプロジェクト内からの Vagrant コマンドの実行を可能にします。Vagrant を使用する場合、次の定義が満たされます。Vagrantfile: Vagrant 環境を定義し、仮想ボックスのすべての構成を格納し、仮想マシンの操作方法を Vagrant に指示するメイン...